diff --git a/lib/auxlib.h b/lib/auxlib.h index 088082e83..cfc66a075 100644 --- a/lib/auxlib.h +++ b/lib/auxlib.h @@ -133,6 +133,7 @@ typedef pthread_cond_t cond_t; #define rwlock_lock_r(l) __debug_rwlock_lock_r(l, __FILE__, __LINE__) #define rwlock_unlock_r(l) __debug_rwlock_unlock_r(l, __FILE__, __LINE__) #define rwlock_lock_w(l) __debug_rwlock_lock_w(l, __FILE__, __LINE__) +#define rwlock_trylock_w(l) __debug_rwlock_trylock_w(l, __FILE__, __LINE__) #define rwlock_unlock_w(l) __debug_rwlock_unlock_w(l, __FILE__, __LINE__) #define cond_init(c) __debug_cond_init(c, __FILE__, __LINE__) @@ -179,6 +180,7 @@ INLINE int __cond_timedwait_tv(cond_t *c, mutex_t *m, const struct timeval *tv) #define __debug_rwlock_lock_r(l, F, L) pthread_rwlock_rdlock(l) #define __debug_rwlock_unlock_r(l, F, L) pthread_rwlock_unlock(l) #define __debug_rwlock_lock_w(l, F, L) pthread_rwlock_wrlock(l) +#define __debug_rwlock_trylock_w(l, F, L) pthread_rwlock_trywrlock(l) #define __debug_rwlock_unlock_w(l, F, L) pthread_rwlock_unlock(l) #define __debug_cond_init(c, F, L) pthread_cond_init(c, NULL) @@ -243,6 +245,13 @@ INLINE int __debug_rwlock_lock_w(rwlock_t *m, const char *file, unsigned int lin write_log(LOG_DEBUG, "rwlock_lock_w(%p) at %s:%u returning %i", m, file, line, ret); return ret; } +INLINE int __debug_rwlock_trylock_w(rwlock_t *m, const char *file, unsigned int line) { + int ret; + write_log(LOG_DEBUG, "rwlock_trylock_w(%p) at %s:%u ...", m, file, line); + ret = pthread_rwlock_trywrlock(m); + write_log(LOG_DEBUG, "rwlock_trylock_w(%p) at %s:%u returning %i", m, file, line, ret); + return ret; +} INLINE int __debug_rwlock_unlock_r(rwlock_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "rwlock_unlock_r(%p) at %s:%u", m, file, line); return pthread_rwlock_unlock(m);