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