This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Intermittent failures retrieving process exit codes
- From: Denis Excoffier <cygwin at Denis-Excoffier dot org>
- To: Cygwin Mailing List <cygwin at cygwin dot com>
- Date: Sun, 17 Nov 2013 14:29:45 +0100
- 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> <20131115192138 dot GA6128 at ednor dot casa dot cgf dot cx>
On 2013-11-15 20:21, Christopher Faylor wrote:
> 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.
Oh, i didn’t remember that. Then this must be the antivirus or something else
i have to cope with.
Regards,
Denis Excoffier.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple