Bonjour,

Je crée une application sous Linux2.6 qui entre autres pilote les LED d'une IHM via les cartes d'I/O. Le besoin du client de faire clignoter ces LED sur certains évènements. Malheureusement il n'y a pas d'hardware intelligent qui gère cet état de clignotement donc je dois le faire moi-même logiciellement (sans pouvoir garantir une fréquence max).
Pour raison d'esthétique et de simplification d'architecture je prévois de synchroniser les clignotements des LEDs.

J'ai deux choix qui se présentent à moi :
1) Utiliser un timer de l'extension RT et gérer le clignotement par le gestionnaire
2) Utiliser un thread avec la fonction nanosleep/sleep/usleep, et gerer les led lors de la sortie de l'appel.

La première solution présente l'avantage d'utiliser peu de ressources et de simplifier les initialisations. Mais comme je fais des appels peut-être bloquant vers un périphérique j'ai des craintes sur la stabilité du système. De plus je crée une dépendance supplémentaire du soft pour la lib rt que je trouve très peu documentée. Et Enfin le déboguage peut-être compliqué à gérer.
La seconde solution est un peu plus lourde à gérer mais on maîtrise mieux le contexte et j'utilise déjà les pthreads

J'ai fais des recherches sur le contexte d'exécution d'un gestionnaire de signaux mais j'ai trouvé peu de choses, le livre en ligne "programmation système avancée sous linux" détaille peu le problème et ne parle pas des timers POSIX, il parle d'un contexte d'exécution fragile et déconseille d'utiliser des fonctions bloquantes, et ajoute que les gestions signaux peuvent se préempter. Je trouve le commentaire "fragile" plutôt vague, et la préemptibilité du signal peut être discutée suivant la façon dont on installe le gestionnaire, et ne commente pas la préemptibilité avec les autres process ou trhread.

Bon j'ai déjà décidé de la solution à prendre mais j'aurais souhaité avoir un retour d'expérience sur les gestionnaires des signaux, surtout pour les accès bloquants, le contexte d'exécution, la préemptibilté et l'ordonnancement, et éventuellement l'aspec temps réel (empilement des signaux RT).

Merci de toute réponse.