diff options
Diffstat (limited to 'src/wrap.c')
-rw-r--r-- | src/wrap.c | 32 |
1 files changed, 18 insertions, 14 deletions
@@ -39,7 +39,11 @@ #include <slapi-plugin.h> #endif -#ifdef USE_PTHREADS +#if defined(USE_NSPR_THREADS) || defined(USE_NSPR_LOCKS) +#include <nspr.h> +#endif + +#if defined(USE_PTHREADS) || defined(USE_PTHREAD_LOCKS) #include <pthread.h> #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 } |