@@ -114,8 +114,8 @@ static void nullptr_test() {
114
114
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_wrlock (nullptr ), EINVAL);
115
115
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedrdlock (nullptr , &ts), EINVAL);
116
116
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedwrlock (nullptr , &ts), EINVAL);
117
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (nullptr , &ts), EINVAL);
118
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (nullptr , &ts), EINVAL);
117
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (nullptr , CLOCK_MONOTONIC, &ts), EINVAL);
118
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (nullptr , CLOCK_MONOTONIC, &ts), EINVAL);
119
119
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_tryrdlock (nullptr ), EINVAL);
120
120
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_trywrlock (nullptr ), EINVAL);
121
121
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_unlock (nullptr ), EINVAL);
@@ -163,25 +163,25 @@ static void unusual_timespec_test() {
163
163
timespec ts = {0 , -1 };
164
164
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedrdlock (&rwlock, &ts), EINVAL);
165
165
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedwrlock (&rwlock, &ts), EINVAL);
166
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, &ts), EINVAL);
167
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, &ts), EINVAL);
166
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, CLOCK_MONOTONIC, &ts), EINVAL);
167
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, CLOCK_MONOTONIC, &ts), EINVAL);
168
168
ts.tv_nsec = 1'000'000'000 ;
169
169
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedrdlock (&rwlock, &ts), EINVAL);
170
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, &ts), EINVAL);
171
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, &ts), EINVAL);
170
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, CLOCK_MONOTONIC, &ts), EINVAL);
171
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, CLOCK_MONOTONIC, &ts), EINVAL);
172
172
ts.tv_nsec += 1 ;
173
173
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedwrlock (&rwlock, &ts), EINVAL);
174
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, &ts), EINVAL);
175
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, &ts), EINVAL);
174
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, CLOCK_MONOTONIC, &ts), EINVAL);
175
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, CLOCK_MONOTONIC, &ts), EINVAL);
176
176
ts.tv_nsec = 0 ;
177
177
ts.tv_sec = -1 ;
178
178
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedrdlock (&rwlock, &ts),
179
179
ETIMEDOUT);
180
180
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedwrlock (&rwlock, &ts),
181
181
ETIMEDOUT);
182
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, &ts),
182
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, CLOCK_MONOTONIC, &ts),
183
183
ETIMEDOUT);
184
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, &ts),
184
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, CLOCK_MONOTONIC, &ts),
185
185
ETIMEDOUT);
186
186
}
187
187
@@ -198,9 +198,9 @@ static void timedlock_with_deadlock_test() {
198
198
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedwrlock (&rwlock, &ts),
199
199
ETIMEDOUT);
200
200
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_timedrdlock (&rwlock, &ts), 0 );
201
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, &ts),
201
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&rwlock, CLOCK_MONOTONIC, &ts),
202
202
ETIMEDOUT);
203
- ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, &ts), 0 );
203
+ ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&rwlock, CLOCK_MONOTONIC, &ts), 0 );
204
204
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_unlock (&rwlock), 0 );
205
205
ASSERT_EQ (LIBC_NAMESPACE::pthread_rwlock_unlock (&rwlock), 0 );
206
206
// notice that ts is already expired, but the following should still succeed.
@@ -379,15 +379,15 @@ static void randomized_thread_operation(SharedData *data, ThreadGuard &guard) {
379
379
}
380
380
case Operation::CLOCK_READ: {
381
381
timespec ts = get_ts ();
382
- if (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&data->lock , &ts) == 0 ) {
382
+ if (LIBC_NAMESPACE::pthread_rwlock_clockrdlock (&data->lock , CLOCK_MONOTONIC, &ts) == 0 ) {
383
383
read_ops ();
384
384
LIBC_NAMESPACE::pthread_rwlock_unlock (&data->lock );
385
385
}
386
386
break ;
387
387
}
388
388
case Operation::CLOCK_WRITE: {
389
389
timespec ts = get_ts ();
390
- if (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&data->lock , &ts) == 0 ) {
390
+ if (LIBC_NAMESPACE::pthread_rwlock_clockwrlock (&data->lock , CLOCK_MONOTONIC, &ts) == 0 ) {
391
391
write_ops ();
392
392
LIBC_NAMESPACE::pthread_rwlock_unlock (&data->lock );
393
393
}
0 commit comments