LinuxThreads cancellation bug.

Kaz Kylheku kaz@ashi.footprints.net
Mon Nov 6 18:48:00 GMT 2000


On 6 Nov 2000, Ulrich Drepper wrote:

> Date: 06 Nov 2000 17:54:49 -0800
> From: Ulrich Drepper <drepper@redhat.com>
> Reply-To: Ulrich Drepper <drepper@cygnus.com>
> To: Kaz Kylheku <kaz@ashi.footprints.net>
> Cc: libc-alpha@sources.redhat.com
> Subject: Re: LinuxThreads cancellation bug.
> 
> Kaz Kylheku <kaz@ashi.footprints.net> writes:
> 
> > I believe that it is sufficient, simply because that extrication
> > pointer is not registered if the thread's cancelation is disabled,
> > so kill() will be called rather than restart(). The thread's signal
> > handler will note that cancelation is disabled and not do anything.
> 
> I'm not convinced at all.  If it's working it is far too complicated.

I agree; if it's not obvious why it works, some reader of the code may waste
time wondering about it, convincing him or herself that it does.  Secondly, it
may break without someone noticing (as has already happened!!!).  The 2.1.2 and
earlier versions depended on that logic of not having an explicit test, and I
broke it miserably.  As a result, 2.1.3 shipped with cancelation disabling
horribly broken.

I must apologize for that one!



More information about the Libc-alpha mailing list