Add support for rwlock
This commit is contained in:
45
src/common/capwap_rwlock.c
Normal file
45
src/common/capwap_rwlock.c
Normal file
@ -0,0 +1,45 @@
|
||||
#include "capwap.h"
|
||||
#include "capwap_rwlock.h"
|
||||
|
||||
#ifndef CAPWAP_MULTITHREADING_ENABLE
|
||||
#error "Warning: multithreading is disabled\n"
|
||||
#endif
|
||||
|
||||
/* */
|
||||
int capwap_rwlock_init(capwap_rwlock_t* lock) {
|
||||
ASSERT(lock != NULL);
|
||||
|
||||
if (pthread_rwlock_init(&lock->rwlock, NULL)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* */
|
||||
void capwap_rwlock_destroy(capwap_rwlock_t* lock) {
|
||||
ASSERT(lock != NULL);
|
||||
|
||||
pthread_rwlock_destroy(&lock->rwlock);
|
||||
}
|
||||
|
||||
/* */
|
||||
void capwap_rwlock_rdlock(capwap_rwlock_t* lock) {
|
||||
ASSERT(lock != NULL);
|
||||
|
||||
pthread_rwlock_rdlock(&lock->rwlock);
|
||||
}
|
||||
|
||||
/* */
|
||||
void capwap_rwlock_wrlock(capwap_rwlock_t* lock) {
|
||||
ASSERT(lock != NULL);
|
||||
|
||||
pthread_rwlock_wrlock(&lock->rwlock);
|
||||
}
|
||||
|
||||
/* */
|
||||
void capwap_rwlock_exit(capwap_rwlock_t* lock) {
|
||||
ASSERT(lock != NULL);
|
||||
|
||||
pthread_rwlock_unlock(&lock->rwlock);
|
||||
}
|
||||
Reference in New Issue
Block a user