Shells hang during script execution

Paul Clements paul.clements@steeleye.com
Mon Feb 27 17:18:00 GMT 2006


Christopher Faylor wrote:
> On Fri, Feb 24, 2006 at 03:22:05PM -0500, Paul Clements wrote:

>>OK, I think I see what is happening now:

>>set_signal_mask() does indeed call sig_dispatch_pending() to do a flush
>>when the signal mask changes.  However, when the sigq is empty,
>>sig_dispatch_pending() just returns! See:

>>sig_dispatch_pending (bool fast) { -if (exit_state || &_my_tls ==
>>_sig_tls || !sigq.start.next) +if (exit_state || &_my_tls == _sig_tls)


> I always wondered if that "optimization" was right and now I see that it is
> obviously racy.  I've removed it from the source.

OK, great. Thanks.

> Not until I ran the test suite, waited five minutes and saw an error.
> Attaching gdb to the running process shows another problem.  I'll check
> in a fix for this, too.

Where can I find this patch? Could you post it or is there somewhere I 
should go to find it? I have a feeling I've probably run into this 
myself during my stress tests.

--
Paul

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list