diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/include/mutex.i')
-rw-r--r-- | src/third_party/wiredtiger/src/include/mutex.i | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/third_party/wiredtiger/src/include/mutex.i b/src/third_party/wiredtiger/src/include/mutex.i index 5b14bb24730..871ccf63be8 100644 --- a/src/third_party/wiredtiger/src/include/mutex.i +++ b/src/third_party/wiredtiger/src/include/mutex.i @@ -113,11 +113,15 @@ static inline int __wt_spin_init(WT_SESSION_IMPL *session, WT_SPINLOCK *t, const char *name) { #if SPINLOCK_TYPE == SPINLOCK_PTHREAD_MUTEX_ADAPTIVE + WT_DECL_RET; pthread_mutexattr_t attr; WT_RET(pthread_mutexattr_init(&attr)); - WT_RET(pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP)); - WT_RET(pthread_mutex_init(&t->lock, &attr)); + ret = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP); + if (ret == 0) + ret = pthread_mutex_init(&t->lock, &attr); + WT_TRET(pthread_mutexattr_destroy(&attr)); + WT_RET(ret); #else WT_RET(pthread_mutex_init(&t->lock, NULL)); #endif |