Sémaphores

Les sémaphores sont des indicateurs de signal globaux dans le système qui configurent des ressources s'excluant mutuellement (mutex). Utilisez-les pour faire patienter certains processus jusqu'à la fin d'autres processus.

Utilisez Travaux > Sémaphores pour afficher les sémaphores de travail en cours d'utilisation. Vous pouvez également effacer des sémaphores, ce qui peut s'avérer nécessaire lorsqu'un travail suspendu ou annulé ne parvient pas à éditer le sien.

Le panneau Sémaphores est utilisé dans le panneau Travaux.
Vous implémentez les sémaphores via une paire de commandes point : les commandes .semget et .semput. Utilisez la commande .semget pour "approprier" un libellé : après l'obtention d'un libellé par l'étape, n'importe quelle autre étape (dans n'importe quel projet) qui essaie d'obtenir le même libellé doit attendre sa libération par le demandeur initial.
Remarque : Une étape contenant une commande .semget est suspendue tant que le sémaphore n'est pas libéré. Si un travail échoue et laisse son sémaphore actif, ce dernier doit être effacé manuellement avant qu'un travail utilisant le sémaphore puisse reprendre.

Supposez, par exemple, qu'un de vos programme crée un pilote d'imprimante et que vous souhaitez que le programme soit utilisé par un seul processus à la fois. Dans chaque projet appelant le programme, configurez trois étapes avec les lignes de commande suivantes :

Etape

Ligne de commande

Obtenir un sémaphore

.semget $BF_PROJECTNAME_PHYS

Exécuter le créateur de pilote

printdrivermaker.exe windows

Libérer le sémaphore

.semput $BF_PROJECTNAME_PHYS

Vous pouvez créer des sémaphores pour les ressources clés de votre entreprise, telles qu'un serveur fortement chargé ou un logiciel associé à une licence mono-utilisateur. Chaque étape utilisant la ressource que vous souhaitez protéger devrait être encapsulée avec des commandes .semget et .semput.

Les sémaphores obéissent aux règles suivantes :


Commentaires en retour