[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: Handles to unix executables exec'd with CreateProcess()
From: Eric Pouech <eric.pouech () wanadoo ! fr>
Date: 2006-04-30 9:06:23
Message-ID: 44547E0F.5000207 () wanadoo ! fr
[Download RAW message or body]
Thomas Kho wrote:
> It seems that it is not currently possible to get the exit code of a
> unix program executed with _wspawnv(_P_WAIT, [unix app], [args])
> because CreateProcess() does not return a handle to the new process.
> _wspawnv() uses the handle to WaitForSingleObject() the end of
> execution and also needs it to GetExitCodeProcess().
>
> Is implementation of handles to unix processes something that could be
> done and pass muster, or just a corner case for a feature that doesn't
> add to Windows compatibility?
>
> FWIW, my application for this is to run a shell script and get the
> return value. Under Windows, I run the shell script with Cygwin; under
> Wine, I had originally planned to execute it directly.
the point is even larger: a unix subprocess doesn't get a handle, so all
the operations requiring such handle don't work (suspend/resume,
debugging, waiting for the end of sub process, exit code, priority,
affinity, enumeration...)
One of the easiest way would be to use a wrapper (being a winelib app),
that could work around some of the issues (wait for the end, exit code,
enumeration - to some extent -...). Including this behavior directly
into wine kernel code would be more complicated, still doable.
That wrapper would be simpler than winevdm (as it shouldn't support
inter-process communication).
A+
--
Eric Pouech
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic