cygthread::cygthread() hang

Christopher Faylor
Sat Apr 5 00:44:00 GMT 2003

On Fri, Apr 04, 2003 at 12:53:35PM -0500, Christopher Faylor wrote:
>On Fri, Apr 04, 2003 at 01:02:30AM -0500, Christopher Faylor wrote:
>>On Thu, Apr 03, 2003 at 10:23:27AM -0500, Joe Buehler wrote:
>>>Christopher Faylor wrote:
>>>>h is only set once when the thread is first started up.  cygthread
>>>>threads are persistent to avoid thread creation/exit.
>>>>If this is truly a case of h being NULL in the above, then add code to
>>>>catch that in the ifdef DEBUGGING case.
>>>I added some code in cygthread::new() to make sure that h is set when
>>>new() exits.  I have still run into the problem -- h is 0 when
>>>cygthread::cygthread() tests it.  So it is being clobbered after
>>>new() initializes it.
>>There was a race in new.  Don't know if this is what you were seeing
>>or not.  It should be fixed now.
>Argh.  There's still a race there.  I have to think about this some more.

I've checked in new code.  I'm still not convinced that this is what
was reported in the original problem, though.  Any race would have been
triggered in pretty unusual conditions, AFAICT.


More information about the Cygwin-developers mailing list