/* vim: ft=c ff=unix fenc=utf-8
* file: a.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <strings.h>
#include <errno.h>
int
main(int argc, char *argv[])
{
pthread_cond_t c;
pthread_mutex_t m;
struct timespec ts;
pthread_mutex_init(&m, NULL);
pthread_cond_init(&c, NULL);
pthread_mutex_lock(&m);
ts.tv_sec += 5;
ts.tv_nsec = 0u;
printf("timedwait: %d\n", pthread_cond_timedwait
(&c
, &m
, &ts
)); printf("unlock: %d\n", pthread_mutex_unlock
(&m
));
pthread_mutex_destroy(&m);
pthread_cond_destroy(&c);
return EXIT_SUCCESS;
}
Ci8qIHZpbTogZnQ9YyBmZj11bml4IGZlbmM9dXRmLTgKICogZmlsZTogYS5jCiAqLwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW50Lmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8cHRocmVhZC5oPgojaW5jbHVkZSA8c3RyaW5ncy5oPgojaW5jbHVkZSA8ZXJybm8uaD4KCmludAptYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKCXB0aHJlYWRfY29uZF90IGM7CglwdGhyZWFkX211dGV4X3QgbTsKCXN0cnVjdCB0aW1lc3BlYyB0czsKCglwdGhyZWFkX211dGV4X2luaXQoJm0sIE5VTEwpOwoJcHRocmVhZF9jb25kX2luaXQoJmMsIE5VTEwpOwoKCXB0aHJlYWRfbXV0ZXhfbG9jaygmbSk7CgoJdGltZSgmdHMudHZfc2VjKTsKCXRzLnR2X3NlYyArPSA1OwoJdHMudHZfbnNlYyA9IDB1OwoKCXByaW50ZigidGltZWR3YWl0OiAlZFxuIiwgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgmYywgJm0sICZ0cykpOwoJcHJpbnRmKCJFVElNRURPVVQ6ICglZClcbiIsIGVycm5vLCBzdHJlcnJvcihlcnJubyksIEVUSU1FRE9VVCk7CglwcmludGYoInVubG9jazogJWRcbiIsIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtKSk7CgoJcHRocmVhZF9tdXRleF9kZXN0cm95KCZtKTsKCXB0aHJlYWRfY29uZF9kZXN0cm95KCZjKTsKCglyZXR1cm4gRVhJVF9TVUNDRVNTOwp9Cgo=