[comp.windows.x.motif] Motif, VMS, ASTs, and detached processes.

mdm@wdl50.wdl.fac.com (Mike D Marchionna) (01/25/91)

jbarrett@nrlvax.decnet ("NRLVAX::JBARRETT") writes:

>Has anyone out there in net-land had any success running multiple Motif
>applications under VMS as detached processes.  Our initial integration
>efforts have resulted in two different problems:

>1) When we try to open mulitple hierarchies in a process executed from the
>   command line, we have no problems.  However, when we try to open multiple
>   hierachies running as a detached process, Mrm dies in the middle of the
>   second hierarchy.  Note that both hierarchies have some, but not all, files
>   in common.

The two biggest gotchas when running detacthed processes are logical names
and process quotas.  Depending on how you start a detached process the
logical names of the creating process may not be available to new detached
process.  You can get around the problem by puting common logical names in
a GROUP table.  Another approach is to run a DCL detached process that reads
a command file that defines any logicals it would need then run the desired
program.  As for process quotas be wary as to what quotas your detached
process recieves.  If you have DETACH privilege you can specify almost all
the desired process qoutas in the RUN command.  One potential quota culprit
is the Max detached process quota if this isn't 0(infinite) you may be 
hitting a quota problem.


>2) We have also run into problems whenever we make motif calls from ASTs. 
>   Specifically, we are trying to map and unmap windows from within an AST
>   and nothing happens.  No errors, no warnings, no mapped or unmapped events.

Doing any X stuff from AST's is basically a bad idea.  This is certainly the
case with the Motif toolkit.   The DEC documentaion clearly states that the
XT intrinsics are not AST reentrant and so neither are any Xm calls.  This
means that if your main line code is in a given XT routine when an AST fires,
the AST thread may smash local static data by inadvertantly calling the
routine it interupted; yeilding unpredictable results.  A work around to
to doing X calls within AST's is to use the XT$ADD_INPUT(XtAddInput) call.
This routine will execute a specified call back routine when an event flag
is set.  Thus your AST could set an allocated event flag, return, XtMainLoop
would callback your AddInput function and you can do your dirty XT business
from main line code.


>Any ideas or comments will be appreciated.  I will post a summary of the
>responses.  Thanks in advance.

>By the way, we're using DEC VAXstations running VMS 5.3.

>	John Barrett
>	STI
>	Alexandria, VA

>	jbarrett@nrlvx1.nrl.navy.mil


Hope this helps.
-- 
+--------------||--##--%%--@@------+--------------------------------------+ 
|El-Rayo-X-----||--##--%%--@@----->| Brain!  Brain!  What is brain!       |
|El-Rayo-X-----||--##--%%--@@----->|       --Star Trek (Spock's Brain)    |
+--------------||--##--%%--@@------+--------------------------------------+