We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 17209fc + e139893 commit 69d83c0Copy full SHA for 69d83c0
generate/templates/manual/src/lock_master.cc
@@ -188,9 +188,13 @@ void LockMasterImpl::Lock(bool acquireMutexes) {
188
}
189
190
void LockMasterImpl::Unlock(bool releaseMutexes) {
191
- std::vector<uv_mutex_t *> objectMutexes = GetMutexes(releaseMutexes * -1);
+ // Get the mutexes but don't decrement their use count until after we've
192
+ // unlocked them all.
193
+ std::vector<uv_mutex_t *> objectMutexes = GetMutexes(0);
194
195
std::for_each(objectMutexes.begin(), objectMutexes.end(), uv_mutex_unlock);
196
+
197
+ GetMutexes(releaseMutexes * -1);
198
199
200
void LockMasterImpl::CleanupMutexes() {
0 commit comments