| 1305 | } |
| 1306 | |
| 1307 | static int pthread_cond_timedwait(pthread_cond_t *c, pthread_mutex_t *m, struct timespec *t) |
| 1308 | { |
| 1309 | unsigned long long tm = _pthread_rel_time_in_ms(t); |
| 1310 | |
| 1311 | pthread_testcancel(); |
| 1312 | |
| 1313 | if (!SleepConditionVariableCS(c, m, (DWORD)tm)) return ETIMEDOUT; |
| 1314 | |
| 1315 | /* We can have a spurious wakeup after the timeout */ |
| 1316 | if (!_pthread_rel_time_in_ms(t)) return ETIMEDOUT; |
| 1317 | |
| 1318 | return 0; |
| 1319 | } |
| 1320 | |
| 1321 | static int pthread_condattr_destroy(pthread_condattr_t *a) |
| 1322 | { |
nothing calls this directly
no test coverage detected