|
|
|
|
|
SémaphoreDébut (Fonction) En anglais : SemaphoreStart Bloque le thread en cours en attendant que le sémaphore soit ouvert (c'est-à -dire qu'une place "libre" soit disponible dans la zone protégée). Rappel : Les sémaphores permettent de définir une zone de code protégée qui ne peut être exécutée que par un nombre spécifique de threads.
Syntaxe
<Résultat> = SémaphoreDébut(<Nom du sémaphore> [, <Durée maximale>])
<Résultat> : Booléen - Vrai si le thread a reçu l'autorisation de rentrer dans la zone de code,
- Faux dans le cas contraire (durée maximale écoulée).
<Nom du sémaphore> : Chaîne de caractères Nom du sémaphore à manipuler. Si le sémaphore n'existe pas, il est créé avec les options par défaut (voir fonction SémaphoreCrée) <Durée maximale> : Entier optionnel ou durée optionnelle Nombre de centièmes de seconde d'attente maximale. - Si à la fin de la durée spécifiée, le thread n'a pas reçu l'autorisation, <Résultat> est égal à Faux.
- Si ce paramètre n'est pas spécifié ou correspond à la constante Infinie, l'attente est infinie.
- Si ce paramètre vaut 0, <Résultat> correspond à l'état du sémaphore. Le thread n'est pas mis en attente.
Ce paramètre peut correspondre à : - un entier correspondant au nombre de centièmes de seconde,
- une variable de type Durée,
- l'indication directe de la durée (par exemple 1 s ou 10 ms).
Remarques SémaphoreDébut("NomSémaphore")
est équivalent à : SectionCritiqueDébut("MaSectionCritique")
En effet, par défaut, la fonction SémaphoreDébut crée un sémaphore limité à un seul thread.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|