Bonjour tout le monde! j’ai un petit soucis dans un programme que je dois faire en C multitache sous linux (avec du code POSIX).
Pour faire simple voilà:
J’ai un processus qui attend qu’un autre le réveille en faisant un V() sur le sémaphore sur lequel il attend.
Malheureusement le procesus qui attend reçoit des signaux de temps en temps de ses fils et il doit les traiter, cela lui fait donc échouer son appel systeme bloquant sur son sémaphore et l’éxécution du code continue…
J’ai regardé les flags de semop et compagnie mais je vois vraiment pas comment faire pour le rebloquer.
rq: j’ai le même soucis avec des files de messages mais ça c’est facile à traiter je fais juste:
while((msgrsv(msgQid,&msg,LG_MSG,idmsg,0)==-1) && (errno=EINTR) {}
Je pense qu’il faut utiliser un truc du genre mais je peux pas réécrire un semop sur le semaphore ca lui descendrait encore son compteur