finished the sem.c
TODO change the yiedl() function to skip the waiting context