From 502b55c20b019782171fd4c6c6351ec958baccc6 Mon Sep 17 00:00:00 2001 From: das Date: Sat, 21 Jun 2003 08:20:14 +0000 Subject: Userland spinlocks bad. Sleep locks good. Use the latter for gdtoa. Requested by: deischen (far too long ago) --- contrib/gdtoa/gdtoaimp.h | 19 +++++++++++-------- lib/libc/gdtoa/glue.c | 7 +++++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/contrib/gdtoa/gdtoaimp.h b/contrib/gdtoa/gdtoaimp.h index 3048656..0c4a936 100644 --- a/contrib/gdtoa/gdtoaimp.h +++ b/contrib/gdtoa/gdtoaimp.h @@ -188,7 +188,10 @@ THIS SOFTWARE. #include "stdlib.h" #include "string.h" #include "libc_private.h" -#include "spinlock.h" + +#include "namespace.h" +#include +#include "un-namespace.h" #ifdef KR_headers #define Char char @@ -465,14 +468,14 @@ extern double rnd_prod(double, double), rnd_quot(double, double); #endif #define MULTIPLE_THREADS -extern spinlock_t __gdtoa_locks[2]; -#define ACQUIRE_DTOA_LOCK(n) do { \ - if (__isthreaded) \ - _SPINLOCK(&__gdtoa_locks[n]); \ +extern pthread_mutex_t __gdtoa_locks[2]; +#define ACQUIRE_DTOA_LOCK(n) do { \ + if (__isthreaded) \ + _pthread_mutex_lock(&__gdtoa_locks[n]); \ } while(0) -#define FREE_DTOA_LOCK(n) do { \ - if (__isthreaded) \ - _SPINUNLOCK(&__gdtoa_locks[n]); \ +#define FREE_DTOA_LOCK(n) do { \ + if (__isthreaded) \ + _pthread_mutex_unlock(&__gdtoa_locks[n]); \ } while(0) #define Kmax 15 diff --git a/lib/libc/gdtoa/glue.c b/lib/libc/gdtoa/glue.c index b587412..39e491a 100644 --- a/lib/libc/gdtoa/glue.c +++ b/lib/libc/gdtoa/glue.c @@ -5,6 +5,9 @@ * $FreeBSD$ */ -#include "spinlock.h" +#include -spinlock_t __gdtoa_locks[2]; +pthread_mutex_t __gdtoa_locks[] = { + PTHREAD_MUTEX_INITIALIZER, + PTHREAD_MUTEX_INITIALIZER +}; -- cgit v1.1