1663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <time.h>
3b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <pthread.h>
4b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <assert.h>
5b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <errno.h>
6b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
7b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovint main()
8b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{
9b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   struct timespec abstime;
10b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
11b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
12b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
13663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
14663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
15663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   abstime.tv_sec = time(NULL) + 2;
17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   abstime.tv_nsec = 0;
18663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   abstime.tv_nsec += 1000000000;
20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   assert(pthread_mutex_lock(&mutex)==0);
22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   assert(pthread_cond_timedwait(&cond, &mutex, &abstime)==EINVAL);
23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   assert(pthread_mutex_unlock(&mutex)==0);
24b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
25b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   return 0;
26b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}
27