TacOS-team/tacos — Issue #101: [Sémaphores] Repenser les sémaphores
Author: MaximeCheramy
Created: 2012-02-08 13:34:33+00:00
State: open

Suite à mon travail sur l'implémentation d'un waitpid en utilisant des sémaphores, je me suis rendu compte que l'interface proposée était à la fois peu claire et incomplète.

Peu claire : il y a des keys et des ids. Le problème c'est que ces fameux ids, lorsqu'ils sont utilisés, ne servent qu'à une chose, récupérer la key qui se trouve à l'intérieur. Alors pourquoi cette distinction ? Est-ce que c'était pour avoir plusieurs sémaphores pour une même key ?
ksemget permet de récupérer et ksemcreate permet en + d'allouer, mais là où c'est un peu confus c'est que pour POSIX par exemple, il n'y a que semget qui permet de créer avec un flag. Réduire le nombre de fonctions serait sans doute plus compréhensible.
ksemget permet de récupérer un id à partir d'une key, mais chaque appel à ksemget renvoie un nouvel id. J'ai envie de dire : wtf. C'est à lier avec cette histoire de key et id, c'est confus.

Incomplet : j'ai eu besoin de faire un "tant que pas libre, je fais des semV". Pour ça j'ai commencé à exporter le sem_t, mais j'ai l'impression de faire doublon avec du code existant trop limitant. Et j'ai l'impression de faire encore un hack.

Compatibilité : Pour faciliter le développement d'applications, est-ce qu'on peut envisager de faire une interface en terme de syscall compatible plus ou moins avec soit POSIX soit SysV ?