Skip to content

Commit 45a7599

Browse files
committed
Review changes
1 parent 3ba0698 commit 45a7599

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/core/search/mrmw_mutex.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@ class MRMWMutex {
2323

2424
// If we have any active_runners we need to check lock mode
2525
if (active_runners_) {
26-
while (lock_mode_ != mode) {
27-
auto& waiters = GetWaiters(mode);
28-
waiters++;
29-
GetCondVar(mode).wait(lk);
30-
waiters--;
31-
}
26+
auto& waiters = GetWaiters(mode);
27+
waiters++;
28+
GetCondVar(mode).wait(lk, [&] { return lock_mode_ == mode; });
29+
waiters--;
3230
} else {
3331
// No active runners so just update to requested lock mode
3432
lock_mode_ = mode;

src/core/search/mrmw_mutex_test.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ TEST_F(MRMWMutexTest, MixWritersReaders) {
154154

155155
// Add long read task that will block all write tasks
156156
threads.emplace_back(ReadTask, &mutex_, std::ref(read_count), 2000);
157+
std::this_thread::sleep_for(std::chrono::milliseconds(100));
158+
157159
size_t write_threads = 0;
158160

159161
for (int i = 0; i < num_threads; ++i) {

0 commit comments

Comments
 (0)