From bc374000d4dda28009ceb1f03a5514687be8904c Mon Sep 17 00:00:00 2001 From: rpj Date: Tue, 12 Jan 1999 14:48:53 +0000 Subject: Wed Jan 13 09:34:52 1999 Ross Johnson * build.bat: Delete old binaries before compiling/linking. Tue Jan 12 09:58:38 1999 Ross Johnson * dll.c: The Microsoft compiler pragmas probably are more appropriately protected by _MSC_VER than by _WIN32. - Tor Lillqvist . * condvar.c (pthread_cond_timedwait): Fix function description comments. * pthread.h: Define ETIMEDOUT. This should be returned by pthread_cond_timedwait which is not implemented yet as of snapshot-1999-01-04-1305. It was implemented in the older version. The Microsoft compiler pragmas probably are more appropriately protected by _MSC_VER than by _WIN32. - Tor Lillqvist . * pthread.def: pthread_mutex_destroy was missing from the def file - Tor Lillqvist . * condvar.c (pthread_cond_broadcast): Ensure we only wait on threads if there were any waiting on the condition. I think pthread_cond_broadcast should do the WaitForSingleObject only if cv->waiters > 0? Otherwise it seems to hang, at least in the testg thread program from glib. - Tor Lillqvist . * semaphore.c (sem_post): Correct typo in comment. Mon Jan 11 20:33:19 1999 Ross Johnson * pthread.h: Re-arrange conditional compile of pthread_cleanup-* macros. * cleanup.c (_pthread_push_cleanup): Provide conditional compile of cleanup->prev. --- cleanup.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'cleanup.c') diff --git a/cleanup.c b/cleanup.c index 883c8ca..e154266 100644 --- a/cleanup.c +++ b/cleanup.c @@ -102,7 +102,11 @@ _pthread_pop_cleanup (int execute) } +#if !defined(_WIN32) && !defined(_cplusplus) + pthread_setspecific (_pthread_cleanupKey, cleanup->prev); + +#endif } return (cleanup); @@ -156,8 +160,13 @@ _pthread_push_cleanup (_pthread_cleanup_t * cleanup, { cleanup->routine = routine; cleanup->arg = arg; + +#if !defined(_WIN32) && !defined(_cplusplus) + cleanup->prev = pthread_getspecific (_pthread_cleanupKey); +#endif + pthread_setspecific (_pthread_cleanupKey, (void *) cleanup); } /* _pthread_push_cleanup */ -- cgit v1.2.3