Subject: Re: Threading problems
To: Eric Haszlakiewicz <erh@nimenees.com>
From: Nathan J. Williams <nathanw@wasabisystems.com>
List: tech-kern
Date: 11/24/2004 23:44:32
Eric Haszlakiewicz <erh@nimenees.com> writes:

> On Wed, Nov 24, 2004 at 11:15:19PM -0500, Nathan J. Williams wrote:
> > Bill Studenmund <wrstuden@netbsd.org> writes:
> > 
> > > I don't think that'd be a good idea. If you're using pthread.h, you're 
> > > using libpthread, not threadlib.
> > 
> > threadlib.h is a bad hack. Why the "obvious" solution I suggested
> > yesterday didn't occur to any of us when I did this in the first place
> > isn't clear to me, but I'm in favor if implementing it and causing
> > threadlib.h a swift death.
> 
> 	I must have missed it.  What's the "obvious" solution?
> (I don't see it in the mail-index archives either)

http://mail-index.netbsd.org/tech-userlevel/2004/11/23/0000.html

(this conversation has drifted around a few different lists)

Restating, in pthread.h:
#define pthread_mutex_lock(x)	__libc_mutex_lock(x)
#define pthread_mutex_unlock(x)	__libc_mutex_unlock(x)

and so on. Notably, no such #define for pthread_create().

 * Libraries that want data protection only will not need to link
   against libpthread. They'll get real mutexes when there are threads
   and no-ops when there aren't (strictly speaking, when libpthread
   isn't linked in)

 * Libraries or applications that genuinely use threads will fail to
   link because pthread_create() and other non-defensive functions are
   missing; it'll be obvious to add -lpthread.

 * <threadlib.h> dies.

        - Nathan