This is the mail archive of the
cygwin-patches@cygwin.com
mailing list for the Cygwin project.
RE: [PATCH] added locks in pthread code
- From: "Robert Collins" <robert dot collins at syncretize dot net>
- To: "'Thomas Pfaff'" <tpfaff at gmx dot net>,<cygwin-patches at cygwin dot com>
- Date: Mon, 10 Jun 2002 12:29:24 +1000
- Subject: RE: [PATCH] added locks in pthread code
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: cygwin-patches-owner@cygwin.com
> [mailto:cygwin-patches-owner@cygwin.com] On Behalf Of Robert Collins
> Sent: Monday, 10 June 2002 12:24 PM
> To: 'Thomas Pfaff'; cygwin-patches@cygwin.com
> 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:tpfaff@gmx.net]
> > Sent: Thursday, 25 April 2002 7:33 PM
> > To: cygwin-patches@cygwin.com
> > 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 <tpfaff@gmx.net>
> >
> > * 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.
> >
>
>