[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