diff options
| author | Nalin Dahyabhai <nalin@dahyabhai.net> | 2013-07-22 15:49:49 -0400 |
|---|---|---|
| committer | Nalin Dahyabhai <nalin@dahyabhai.net> | 2013-08-07 14:46:03 -0400 |
| commit | e8099d6a0396cdde592eb3e8059af1cb36506271 (patch) | |
| tree | d912a6e234c897d2fd3fd8c701ec9ebfc09a5ed0 /src | |
| parent | ae785b3ceaa596dc4f11df2f298f4b85bd9ba77b (diff) | |
| download | slapi-nis-e8099d6a0396cdde592eb3e8059af1cb36506271.tar.gz slapi-nis-e8099d6a0396cdde592eb3e8059af1cb36506271.tar.xz slapi-nis-e8099d6a0396cdde592eb3e8059af1cb36506271.zip | |
Remember that locking can fail
The SLAPI and pthread rwlock functions, unlike the NSPR versions, return
result codes which can indicate failure. So don't throw them away.
Diffstat (limited to 'src')
| -rw-r--r-- | src/map.c | 12 | ||||
| -rw-r--r-- | src/map.h | 6 | ||||
| -rw-r--r-- | src/wrap.c | 21 | ||||
| -rw-r--r-- | src/wrap.h | 6 |
4 files changed, 24 insertions, 21 deletions
@@ -1218,20 +1218,20 @@ map_data_get_map_size(struct plugin_state *state, return 0; } -void +int map_rdlock(void) { - wrap_rwlock_rdlock(map_data.lock); + return wrap_rwlock_rdlock(map_data.lock); } -void +int map_wrlock(void) { - wrap_rwlock_wrlock(map_data.lock); + return wrap_rwlock_wrlock(map_data.lock); } -void +int map_unlock(void) { - wrap_rwlock_unlock(map_data.lock); + return wrap_rwlock_unlock(map_data.lock); } @@ -115,7 +115,7 @@ int map_data_get_domain_size(struct plugin_state *state, const char *domain_name); int map_data_get_map_size(struct plugin_state *state, const char *domain_name, const char *map_name); -void map_rdlock(void); -void map_wrlock(void); -void map_unlock(void); +int map_rdlock(void); +int map_wrlock(void); +int map_unlock(void); #endif @@ -216,45 +216,48 @@ wrap_free_rwlock(struct wrapped_rwlock *rwlock) free(rwlock); } -void +int wrap_rwlock_rdlock(struct wrapped_rwlock *rwlock) { #ifdef USE_SLAPI_LOCKS - slapi_rwlock_rdlock(rwlock->rwlock); + return slapi_rwlock_rdlock(rwlock->rwlock); #endif #ifdef USE_PTHREAD_LOCKS - pthread_rwlock_rdlock(&rwlock->rwlock); + return pthread_rwlock_rdlock(&rwlock->rwlock); #endif #ifdef USE_NSPR_LOCKS PR_RWLock_Rlock(rwlock->rwlock); + return 0; #endif } -void +int wrap_rwlock_wrlock(struct wrapped_rwlock *rwlock) { #ifdef USE_SLAPI_LOCKS - slapi_rwlock_wrlock(rwlock->rwlock); + return slapi_rwlock_wrlock(rwlock->rwlock); #endif #ifdef USE_PTHREAD_LOCKS - pthread_rwlock_wrlock(&rwlock->rwlock); + return pthread_rwlock_wrlock(&rwlock->rwlock); #endif #ifdef USE_NSPR_LOCKS PR_RWLock_Wlock(rwlock->rwlock); + return 0; #endif } -void +int wrap_rwlock_unlock(struct wrapped_rwlock *rwlock) { #ifdef USE_SLAPI_LOCKS - slapi_rwlock_unlock(rwlock->rwlock); + return slapi_rwlock_unlock(rwlock->rwlock); #endif #ifdef USE_PTHREAD_LOCKS - pthread_rwlock_unlock(&rwlock->rwlock); + return pthread_rwlock_unlock(&rwlock->rwlock); #endif #ifdef USE_NSPR_LOCKS PR_RWLock_Unlock(rwlock->rwlock); + return 0; #endif } @@ -33,9 +33,9 @@ int wrap_thread_stopfd(struct wrapped_thread *t); struct wrapped_rwlock *wrap_new_rwlock(void); void wrap_free_rwlock(struct wrapped_rwlock *rwlock); -void wrap_rwlock_rdlock(struct wrapped_rwlock *rwlock); -void wrap_rwlock_wrlock(struct wrapped_rwlock *rwlock); -void wrap_rwlock_unlock(struct wrapped_rwlock *rwlock); +int wrap_rwlock_rdlock(struct wrapped_rwlock *rwlock); +int wrap_rwlock_wrlock(struct wrapped_rwlock *rwlock); +int wrap_rwlock_unlock(struct wrapped_rwlock *rwlock); Slapi_PBlock *wrap_pblock_new(Slapi_PBlock *parent); int wrap_search_internal_get_entry(Slapi_PBlock *pb, |
