65 #include "gw-config.h" 71 #define RWDEBUG(str,lev,frm,args...) debug(str, lev, frm, ## args) 73 #define RWDEBUG(str,lev,frm,args...) do{}while(0) 79 RWLock *ret = gw_malloc(
sizeof(*ret));
80 #ifdef HAVE_PTHREAD_RWLOCK 81 int rc = pthread_rwlock_init(&ret->
rwlock, NULL);
83 panic(rc,
"Initialization of RWLock failed.");
88 panic(0,
"Initialization of RWLock failed.");
98 #ifdef HAVE_PTHREAD_RWLOCK 99 int rc = pthread_rwlock_init(&
lock->rwlock, NULL);
101 panic(rc,
"Initialization of RWLock failed.");
105 if (
lock->rwlock == NULL)
106 panic(0,
"Initialization of RWLock failed.");
114 #ifdef HAVE_PTHREAD_RWLOCK 121 #ifdef HAVE_PTHREAD_RWLOCK 122 ret = pthread_rwlock_destroy(&
lock->rwlock);
124 panic(ret,
"Attempt to destroy locked rwlock.");
139 #ifdef HAVE_PTHREAD_RWLOCK 140 ret = pthread_rwlock_rdlock(&
lock->rwlock);
142 panic(ret,
"Error while pthread_rwlock_rdlock.");
148 RWDEBUG(
"", 0,
"------------ gw_rwlock_rdlock(%p) ----------",
lock);
160 #ifdef HAVE_PTHREAD_RWLOCK 161 ret = pthread_rwlock_unlock(&
lock->rwlock);
163 panic(ret,
"Error while gw_rwlock_unlock.");
165 RWDEBUG(
"", 0,
"------------ gw_rwlock_unlock(%p) ----------",
lock);
182 #ifdef HAVE_PTHREAD_RWLOCK 183 ret = pthread_rwlock_wrlock(&
lock->rwlock);
185 panic(ret,
"Error while pthread_rwlock_wrlock.");
187 RWDEBUG(
"", 0,
"------------ gw_rwlock_wrlock(%p) ----------",
lock);
gw_assert(wtls_machine->packet_to_send !=NULL)
void gw_rwlock_destroy(RWLock *lock)
int gw_rwlock_wrlock(RWLock *lock)
RWLock * gw_rwlock_create(void)
int gw_rwlock_rdlock(RWLock *lock)
#define RWDEBUG(str, lev, frm, args...)
void gwlist_unlock(List *list)
void gwlist_remove_producer(List *list)
int gw_rwlock_unlock(RWLock *lock)
void gwlist_lock(List *list)
void * gwlist_consume(List *list)
void gw_rwlock_init_static(RWLock *lock)
void gwlist_add_producer(List *list)
int gwlist_producer_count(List *list)
void gwlist_destroy(List *list, gwlist_item_destructor_t *destructor)