1 #include <common.h>
2 
3 int
4 main(void) {
5 	sem_t id;
6 	u_int elapsed;
7 
8 	if (sem_init(&id, 0, 1) < 0) {
9 		perror("sem_init");
10 		return 1;
11 	}
12 
13 	/* This should succeed right away and set the value to 0. */
14 	if (timedwait(&id, 5000, &elapsed, 0) < 0) {
15 		sem_destroy(&id);
16 		return 1;
17 	}
18 	if (!ELAPSED(elapsed, 0)) {
19 		fprintf(stderr, "sem_timedwait() of unlocked sem took %ums",
20 		    elapsed);
21 		sem_destroy(&id);
22 		return 1;
23 	}
24 	if (checkvalue(&id, 0) < 0) {
25 		sem_destroy(&id);
26 		return 1;
27 	}
28 
29 	if (sem_destroy(&id) < 0) {
30 		perror("sem_destroy");
31 		return 1;
32 	}
33 	return 0;
34 }
35