Oh, and I'm not 100% sure that the cleanup_handler_push needs the locks - shouldn't it be non cancellable? The IEEE P1003.1 reference I'm using does not list pthread_clean_push as being cancellable, and explicitly states that non listed functions (from the standard) are not cancellable.
Rob > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED]] On Behalf Of Robert Collins > Sent: Monday, 10 June 2002 12:24 PM > To: 'Thomas Pfaff'; [EMAIL PROTECTED] > Subject: RE: [PATCH] added locks in pthread code > > > 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. > > > >