This is the mail archive of the
mailing list for the Cygwin project.
Re: Intermittent failures retrieving process exit codes
- From: Christopher Faylor <cgf-use-the-mailinglist-please at cygwin dot com>
- To: cygwin at cygwin dot com
- Date: Fri, 15 Nov 2013 14:21:38 -0500
- Subject: Re: Intermittent failures retrieving process exit codes
- Authentication-results: sourceware.org; auth=none
- References: <50C2498C dot 2000003 at coverity dot com> <50C276AC dot 9090301 at mailme dot ath dot cx> <50D401EF dot 9040705 at coverity dot com> <52844B2E dot 5050902 at coverity dot com> <EFA04305-A94A-46F4-BCCE-8FB3ADA45E72 at Denis-Excoffier dot org>
- Reply-to: cygwin at cygwin dot com
On Fri, Nov 15, 2013 at 07:53:26PM +0100, Denis Excoffier wrote:
>On 2013-11-14 05:01, Tom Honermann wrote:
>> On 12/21/2012 01:30 AM, Tom Honermann wrote:
>>> The workaround I implemented within Cygwin was simple and sloppy. I
>>> added a call to Sleep(1000) immediately before the call to ExitThread()
>>> in wait_sig() in winsup/cygwin/sigproc.cc. Since this thread (probably)
>>> doesn't exit until the process is exiting anyway, the call to Sleep()
>>> does not adversely affect shutdown. The thread just gets terminated
>>> while in the call to Sleep() instead of exiting before the process is
>>> terminated or getting terminated while still in the call to
>>> ExitThread(). A better solution might be to avoid the thread exiting at
>>> all (so long as it can't get terminated while holding critical
>>> resources), or to have the process exiting thread wait on it. Neither
>>> of these is ideal. Orderly shutdown of multi-threaded processes is
>>> really hard to do correctly on Windows.
>I experience on Windows 7 (not on XP) some problems that may be related.
>I would like to test your workaround, but sigproc.cc has much changed since
>then, there is now an exit_thead function with the comment "Exit the current
>thread very carefully.". I tried to insert Sleep(1000) at the end of
>exit_thread, immediately before "ExitThread (0)", but this yielded no
>change at all.
>Could someone be kind enough to update the workaround for modern sigproc.cc?
You apparently are misunderstanding the whole point of the changes to
sigproc.cc. They were to work around this very problem.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple