@@ -41,37 +41,37 @@ TEST_CASE("reader_writer_mutex/reader_writer_lock/3_readers_2_writers", "[core][
41
41
lock.lock_write ();
42
42
M_insist (lock.owns_write_lock ());
43
43
shared_value += delta;
44
- std::this_thread::sleep_for (5ms );
44
+ std::this_thread::sleep_for (50ms );
45
45
};
46
46
47
47
auto read = [&mutex, &shared_value](int &dest) {
48
48
reader_writer_lock lock{mutex};
49
49
lock.lock_read ();
50
50
M_insist (lock.owns_read_lock ());
51
51
dest = shared_value;
52
- std::this_thread::sleep_for (5ms );
52
+ std::this_thread::sleep_for (50ms );
53
53
};
54
54
55
- /* Spawn first reader, taking 5ms . */
55
+ /* Spawn first reader, taking 50ms . */
56
56
std::thread tr1{read, std::ref (r1)};
57
- std::this_thread::sleep_for (1ms );
57
+ std::this_thread::sleep_for (10ms );
58
58
59
- /* Spawn first writer, taking 5ms . It is blocked by the first reader. */
59
+ /* Spawn first writer, taking 50ms . It is blocked by the first reader. */
60
60
std::thread tw1{write, 1 };
61
- std::this_thread::sleep_for (1ms );
61
+ std::this_thread::sleep_for (10ms );
62
62
63
63
/* Spawn second reader. The first reader should still be active while the first writer is still blocked.
64
64
* Therefore, the newly spawned second reader should wait for the writer to finish. */
65
65
std::thread tr2{read, std::ref (r2)};
66
- std::this_thread::sleep_for (1ms );
66
+ std::this_thread::sleep_for (10ms );
67
67
68
68
/* Spawn second writer. */
69
69
std::thread tw2{write, 2 };
70
- std::this_thread::sleep_for (1ms );
70
+ std::this_thread::sleep_for (10ms );
71
71
72
72
/* Spawn third reader. */
73
73
std::thread tr3{read, std::ref (r3)};
74
- std::this_thread::sleep_for (1ms );
74
+ std::this_thread::sleep_for (10ms );
75
75
76
76
tr1.join ();
77
77
tr2.join ();
@@ -93,36 +93,36 @@ TEST_CASE("reader_writer_mutex/read_lock_write_lock/3_readers_2_writers", "[core
93
93
write_lock lock{mutex};
94
94
M_insist (lock.owns_lock ());
95
95
shared_value += delta;
96
- std::this_thread::sleep_for (5ms );
96
+ std::this_thread::sleep_for (50ms );
97
97
};
98
98
99
99
auto read = [&mutex, &shared_value](int &dest) {
100
100
read_lock lock{mutex};
101
101
M_insist (lock.owns_lock ());
102
102
dest = shared_value;
103
- std::this_thread::sleep_for (5ms );
103
+ std::this_thread::sleep_for (50ms );
104
104
};
105
105
106
- /* Spawn first reader, taking 5ms . */
106
+ /* Spawn first reader, taking 50ms . */
107
107
std::thread tr1{read, std::ref (r1)};
108
- std::this_thread::sleep_for (1ms );
108
+ std::this_thread::sleep_for (10ms );
109
109
110
- /* Spawn first writer, taking 5ms . It is blocked by the first reader. */
110
+ /* Spawn first writer, taking 50ms . It is blocked by the first reader. */
111
111
std::thread tw1{write, 1 };
112
- std::this_thread::sleep_for (1ms );
112
+ std::this_thread::sleep_for (10ms );
113
113
114
114
/* Spawn second reader. The first reader should still be active while the first writer is still blocked.
115
115
* Therefore, the newly spawned second reader should wait for the writer to finish. */
116
116
std::thread tr2{read, std::ref (r2)};
117
- std::this_thread::sleep_for (1ms );
117
+ std::this_thread::sleep_for (10ms );
118
118
119
119
/* Spawn second writer. */
120
120
std::thread tw2{write, 2 };
121
- std::this_thread::sleep_for (1ms );
121
+ std::this_thread::sleep_for (10ms );
122
122
123
123
/* Spawn third reader. */
124
124
std::thread tr3{read, std::ref (r3)};
125
- std::this_thread::sleep_for (1ms );
125
+ std::this_thread::sleep_for (10ms );
126
126
127
127
tr1.join ();
128
128
tr2.join ();
0 commit comments