diff --git a/src/xpdev/rwlockwrap.c b/src/xpdev/rwlockwrap.c index 465c1ad1b4a09053bc832fa9919c031143d1e5a4..88699eadd8814594e2c9a2fc4aa8d767e049c5d2 100644 --- a/src/xpdev/rwlockwrap.c +++ b/src/xpdev/rwlockwrap.c @@ -146,7 +146,8 @@ rwlock_wrlock(rwlock_t *lock) ret = true; } LeaveCriticalSection(&lock->lk); - LeaveCriticalSection(&lock->wlk); + if (!ret) + LeaveCriticalSection(&lock->wlk); return ret; }