This is the mail archive of the cygwin-developers@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygthread::cygthread() hang


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.

cgf


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]