FreeBSD pthread_equal "bug"
Kern Sibbald
kern at sibbald.com
Wed Jun 4 12:46:24 PDT 2003
On Wed, 2003-06-04 at 20:35, Julian Elischer wrote:
> On Wed, 4 Jun 2003, Jeff Roberson wrote:
>
> > On 4 Jun 2003, Kern Sibbald wrote:
> >
> > >
> > > I'm not sure what the POSIX specification says,
> > > if I were programming it, I would not be content
> > > with the FreeBSD current implementation especially
> > > considering that both Solaris and Linux do it "correctly".
> >
> > Would you rather your application failed immediately, or in a subtle,
> > unexpected way after many hours/weeks/months of run time? Dan says the
> > standard allows for immediate reuse. If that is correct, then Solaris,
> > linux, and FreeBSD all do it correctly for the only definition of
> > correctly that matters.
> >
> > Simply adding an ID is problematic because the ids will wrap. Without
> > using some deterministic notification you can't be sure that it isn't an
> > expired thread.
>
>
> I will quote from "Programming with Posix threads"
> by David R Butenhof..
> He is one o fthe main authors of the Posix threads standard so
> I tend to treat this book as a guide..
>
> "Once a thread is recycled, the thread's ID (pthread_t) is no longer
> valid. You cannot join with the thread, canel it, or anything else. The
> terminated thread's ID (which may be the addess of a system data
> structure) may be assigned to a new thread. Instead of receiving an
> ESRCH failure from your call to pthread_cancel, you would instead cancel
> a different thread."
>
> I think that is pretty explicit as far as expected bahaviour.
>
> HAVING SAID THAT, it is not impossible that at some time in the future
> we may use some other pthread_t type, e.g an incrementing TID,
> but at this time I think we are well within the standard...
>
>
> Julian
>
Nice quote. I've already headed the warning. Sorry for bothering you.
More information about the freebsd-threads
mailing list