From 578a55b7374ad7e68da527f4035aeac967cc8906 Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Fri, 12 Aug 2011 15:31:53 -0400 Subject: - separate which thread creation/manipulation/destruction API we use from which rwlock creation/manipulation/destruction API we use --- src/wrap.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'src/wrap.c') diff --git a/src/wrap.c b/src/wrap.c index a7a64ff..ce15c8a 100644 --- a/src/wrap.c +++ b/src/wrap.c @@ -39,7 +39,11 @@ #include #endif -#ifdef USE_PTHREADS +#if defined(USE_NSPR_THREADS) || defined(USE_NSPR_LOCKS) +#include +#endif + +#if defined(USE_PTHREADS) || defined(USE_PTHREAD_LOCKS) #include #endif @@ -64,12 +68,12 @@ struct wrapped_thread { }; struct wrapped_rwlock { -#if defined(USE_PTHREADS) +#if defined(USE_PTHREAD_LOCKS) pthread_rwlock_t rwlock; -#elif defined(USE_NSPR_THREADS) +#elif defined(USE_NSPR_LOCKS) PRRWLock *rwlock; #else -#error "Unknown threading model!" +#error "Unknown thread-safe locking model!" #endif }; @@ -171,13 +175,13 @@ wrap_new_rwlock(void) if (rwlock == NULL) { return NULL; } -#ifdef USE_PTHREADS +#ifdef USE_PTHREAD_LOCKS if (pthread_rwlock_init(&rwlock->rwlock, NULL) != 0) { free(rwlock); return NULL; } #endif -#ifdef USE_NSPR_THREADS +#ifdef USE_NSPR_LOCKS rwlock->rwlock = PR_NewRWLock(PR_RWLOCK_RANK_NONE, PACKAGE_NAME "-rw-lock"); if (rwlock->rwlock == NULL) { @@ -191,10 +195,10 @@ wrap_new_rwlock(void) void wrap_free_rwlock(struct wrapped_rwlock *rwlock) { -#ifdef USE_PTHREADS +#ifdef USE_PTHREAD_LOCKS pthread_rwlock_destroy(&rwlock->rwlock); #endif -#ifdef USE_NSPR_THREADS +#ifdef USE_NSPR_LOCKS PR_DestroyRWLock(rwlock->rwlock); #endif free(rwlock); @@ -203,10 +207,10 @@ wrap_free_rwlock(struct wrapped_rwlock *rwlock) void wrap_rwlock_rdlock(struct wrapped_rwlock *rwlock) { -#ifdef USE_PTHREADS +#ifdef USE_PTHREAD_LOCKS pthread_rwlock_rdlock(&rwlock->rwlock); #endif -#ifdef USE_NSPR_THREADS +#ifdef USE_NSPR_LOCKS PR_RWLock_Rlock(rwlock->rwlock); #endif } @@ -214,10 +218,10 @@ wrap_rwlock_rdlock(struct wrapped_rwlock *rwlock) void wrap_rwlock_wrlock(struct wrapped_rwlock *rwlock) { -#ifdef USE_PTHREADS +#ifdef USE_PTHREAD_LOCKS pthread_rwlock_wrlock(&rwlock->rwlock); #endif -#ifdef USE_NSPR_THREADS +#ifdef USE_NSPR_LOCKS PR_RWLock_Wlock(rwlock->rwlock); #endif } @@ -225,10 +229,10 @@ wrap_rwlock_wrlock(struct wrapped_rwlock *rwlock) void wrap_rwlock_unlock(struct wrapped_rwlock *rwlock) { -#ifdef USE_PTHREADS +#ifdef USE_PTHREAD_LOCKS pthread_rwlock_unlock(&rwlock->rwlock); #endif -#ifdef USE_NSPR_THREADS +#ifdef USE_NSPR_LOCKS PR_RWLock_Unlock(rwlock->rwlock); #endif } -- cgit