Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Jul 2003 22:47:10 -0400 (EDT)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Brooks Davis <brooks@one-eyed-alien.net>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: null pthread_t
Message-ID:  <Pine.GSO.4.10.10307092242350.9055-100000@pcnet5.pcnet.com>
In-Reply-To: <20030710001744.GA7135@Odin.AC.HMC.Edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 9 Jul 2003, Brooks Davis wrote:

> I've got some Linux pthread code that goes something like this that I'm
> porting to FreeBSD:
> 
> ------
> pthread_t tid;
> 
> tid = -1;
> 
> /* Do stuff including maybe creating a thread. */
> 
> if (tid != -1) {
> 	pthread_cancel(tid);
> 	pthread_join(tid, NULL);
> }
> ------
> 
> Since FreeBSD uses pointers instead of integers for pthread_t's, this
> generates warnings which go away if you replace -1 with NULL, but
> it seems like that is likely to do bad things on linux.  Is there a
> portable NULL-equivalent pthread_t?  I'm not seeing anything jump out at
> me in the headers.

The code in question shouldn't be doing that.  If it needs to know
whether a thread id is valid, it should have a separate flag for
it (tid_valid) or possibly use pthread_kill(tid, 0) and checking
the return value (sending signal 0 to a thread is akin to sending
a process signal 0; the signal isn't delivered but the process id
is checked for validity).

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10307092242350.9055-100000>