Il peut être intéressant en programmation de pouvoir contrôler le temps maximum d'exécution d'une fonction, pour par exemple éviter un blocage de l'application à cause d'un bug, ou d'une boucle infinie car la condition de sortie n'arrive jamais. Il existe plusieurs mécanismes pour y arriver, notamment l'utilisation de SIGALRM, les conditions des pthreads, ou encore les sémaphores. C'est cette dernière solution, que je trouve plus simple, que j'ai retenue pour gérer les timeouts des fonctions de mon robot IRC trustyRC, m'assurant ainsi qu'il ne se gèlera pas si un plugin chargé se bloquait. Je la présente ici, au travers d'un exemple simple.