From d0aed2a7bfdad688de32a7c4d894590502e6bac4 Mon Sep 17 00:00:00 2001 From: bje Date: Sun, 4 Oct 1998 21:04:28 +0000 Subject: 1998-10-05 Ben Elliston * misc.c (pthread_once): Use the POSIX mutex primitives, not Win32. Remove irrelevant FIXME comment. * pthread.h (PTHREAD_ONCE_INIT): Define. * tests/once1.c: New file; test for pthread_once(). Passes. --- misc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'misc.c') diff --git a/misc.c b/misc.c index eebebae..d39af50 100644 --- a/misc.c +++ b/misc.c @@ -22,17 +22,13 @@ pthread_once(pthread_once_t *once_control, return EINVAL; } - /* FIXME: we are assuming that the `cs' object is initialised at DLL - load time. Likewise, the object should be destroyed when (if) - the DLL is unloaded. */ - /* An atomic test-and-set of the "once" flag. */ - EnterCriticalSection(&once_control->lock); + pthread_mutex_lock(&once_control->lock); if (once_control->flag == 0) { flag = once_control->flag = 1; } - LeaveCriticalSection(&once_control->lock); + pthread_mutex_unlock(&once_control->lock); if (flag) { -- cgit v1.2.3