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 7*0bba68feSAntonio Huete Jimenez if (sem_init(&id, 0, 0) < 0) { 8*0bba68feSAntonio Huete Jimenez perror("sem_init"); 9*0bba68feSAntonio Huete Jimenez return 1; 10*0bba68feSAntonio Huete Jimenez } 11*0bba68feSAntonio Huete Jimenez 12*0bba68feSAntonio Huete Jimenez /* This should fail with EAGAIN and leave the value at 0. */ 13*0bba68feSAntonio Huete Jimenez if (sem_trywait(&id) >= 0) { 14*0bba68feSAntonio Huete Jimenez sem_destroy(&id); 15*0bba68feSAntonio Huete Jimenez return 1; 16*0bba68feSAntonio Huete Jimenez } 17*0bba68feSAntonio Huete Jimenez if (errno != EAGAIN) { 18*0bba68feSAntonio Huete Jimenez perror("wrong error from sem_trywait()"); 19*0bba68feSAntonio Huete Jimenez sem_destroy(&id); 20*0bba68feSAntonio Huete Jimenez return 1; 21*0bba68feSAntonio Huete Jimenez } 22*0bba68feSAntonio Huete Jimenez if (checkvalue(&id, 0) < 0) { 23*0bba68feSAntonio Huete Jimenez sem_destroy(&id); 24*0bba68feSAntonio Huete Jimenez return 1; 25*0bba68feSAntonio Huete Jimenez } 26*0bba68feSAntonio Huete Jimenez 27*0bba68feSAntonio Huete Jimenez if (sem_destroy(&id) < 0) { 28*0bba68feSAntonio Huete Jimenez perror("sem_destroy"); 29*0bba68feSAntonio Huete Jimenez return 1; 30*0bba68feSAntonio Huete Jimenez } 31*0bba68feSAntonio Huete Jimenez return 0; 32*0bba68feSAntonio Huete Jimenez } 33