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