/* 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>
void *
_thread(void *x)
{
return NULL;
}
int
main(int argc, char *argv[])
{
pthread_cond_t c;
pthread_mutex_t m;
struct timespec ts;
pthread_t t;
pthread_create(&t, NULL, _thread, NULL);
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("ETIMEDOUT: (%d)\n", ETIMEDOUT
); printf("unlock: %d\n", pthread_mutex_unlock
(&m
));
pthread_mutex_destroy(&m);
pthread_cond_destroy(&c);
return EXIT_SUCCESS;
}
Ci8qIHZpbTogZnQ9YyBmZj11bml4IGZlbmM9dXRmLTgKICogZmlsZTogYS5jCiAqLwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW50Lmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8cHRocmVhZC5oPgojaW5jbHVkZSA8c3RyaW5ncy5oPgojaW5jbHVkZSA8ZXJybm8uaD4KCnZvaWQgKgpfdGhyZWFkKHZvaWQgKngpCnsKCXJldHVybiBOVUxMOwp9CgppbnQKbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CglwdGhyZWFkX2NvbmRfdCBjOwoJcHRocmVhZF9tdXRleF90IG07CglzdHJ1Y3QgdGltZXNwZWMgdHM7CglwdGhyZWFkX3QgdDsKCglwdGhyZWFkX2NyZWF0ZSgmdCwgTlVMTCwgX3RocmVhZCwgTlVMTCk7CgoJcHRocmVhZF9tdXRleF9pbml0KCZtLCBOVUxMKTsKCXB0aHJlYWRfY29uZF9pbml0KCZjLCBOVUxMKTsKCglwdGhyZWFkX211dGV4X2xvY2soJm0pOwoKCXRpbWUoJnRzLnR2X3NlYyk7Cgl0cy50dl9zZWMgKz0gNTsKCXRzLnR2X25zZWMgPSAwdTsKCglwcmludGYoInRpbWVkd2FpdDogJWRcbiIsIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoJmMsICZtLCAmdHMpKTsKCXByaW50ZigiRVRJTUVET1VUOiAoJWQpXG4iLCBFVElNRURPVVQpOwoJcHJpbnRmKCJ1bmxvY2s6ICVkXG4iLCBwdGhyZWFkX211dGV4X3VubG9jaygmbSkpOwoKCXB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbSk7CglwdGhyZWFkX2NvbmRfZGVzdHJveSgmYyk7CgoJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfQoK