I'm applying a variation on this. Again, mainly OOP style changes, but also making the mutex an instance rather than pointer. (And where you aware that you where leaking the mutex?)
Rob > -----Original Message----- > From: Thomas Pfaff [mailto:[EMAIL PROTECTED]] > Sent: Thursday, 25 April 2002 7:33 PM > To: [EMAIL PROTECTED] > Subject: [PATCH] added locks in pthread code > > > The patch will add locks via mutex around critical code to > protect against > race conditions and fix __pthread_detach to cleanup when thread has > already terminated. This an incremental update again. > > Greetings, > Thomas > > 2002-04-25 Thomas Pfaff <[EMAIL PROTECTED]> > > * thread.h (pthread::mutex): new member > * thread.cc (pthread::pthread): Set mutex to NULL. > (pthread::~pthread): Destroy mutex. > (pthread::create): Initialize mutex. > (thread_init_wrapper): Protect against race. > (__pthread_cleanup_push): Ditto. > (__pthread_exit): Ditto. > (__pthread_join): Ditto > (__pthread_detach): Protect against race and cleanup if > thread has > already terminated. >