snapshot 20050114 race (on list)

Pierre A. Humblet
Wed Jan 19 15:30:00 GMT 2005

A similar issue of Cygwin vs. Windows process
termination time occurs when proc_waiter calls
GetExitCodeProcess might well return STILL_ACTIVE.
It's unsafe to poll until that value changes,
so there should be a WaitFor(hProcess).
No further WaitFor is necessary when calling
set_exit_code when exiting after a spawn.

So, I think the code would be clearer by reverting 
to having separate calls to GetExitCodeProcess
in proc_waiter and in child_info::sync.
child_info::sync can return either the exit
code or EXITCODE_NOSET, and spawn can then pass
that value to exit, avoiding further calls in
exit and clearing myself.hProcess in spawn.


More information about the Cygwin-developers mailing list