xref: /dragonfly/test/testcases/posixipc/trywait_unlocked/trywait_unlocked.c (revision 0bba68feaae2960c1f2b5feb6978a8918f571707)
1 #include <common.h>
2 
3 int
main(void)4 main(void) {
5           sem_t id;
6 
7           if (sem_init(&id, 0, 1) < 0) {
8                     perror("sem_init");
9                     return 1;
10           }
11 
12           /* This should succeed and decrement the value to 0. */
13           if (sem_trywait(&id) < 0) {
14                     perror("sem_trywait()");
15                     sem_destroy(&id);
16                     return 1;
17           }
18           if (checkvalue(&id, 0) < 0) {
19                     sem_destroy(&id);
20                     return 1;
21           }
22 
23           if (sem_destroy(&id) < 0) {
24                     perror("sem_destroy");
25                     return 1;
26           }
27           return 0;
28 }
29