diff --git a/include/tscpp/util/TsSharedMutex.h b/include/tscpp/util/TsSharedMutex.h index df0fd2c23ee..92bd20f4ffa 100644 --- a/include/tscpp/util/TsSharedMutex.h +++ b/include/tscpp/util/TsSharedMutex.h @@ -107,7 +107,9 @@ class shared_mutex if (error != 0) { _call_fatal("pthread_rwlock_rdlock", &_lock, error); } + X(TSAssert(_shared >= 0);) X(++_shared;) + X(TSAssert(_shared > 0);) } bool @@ -184,8 +186,8 @@ class shared_mutex // In debug builds, make sure shared vs. exlusive locks and unlocks are properly paired. // - X(std::atomic _exclusive;) - X(std::atomic _shared;) + X(std::atomic _exclusive{false};) + X(std::atomic _shared{0};) }; } // end namespace ts