(PECL sync >= 1.0.0)
SyncSemaphore::__construct — Construit un nouvel objet SyncSemaphore
$name
[, int $initialval = 1
[, bool $autounlock = TRUE
]]] )Construit un sémaphore nommé ou non.
nameLe nom du sémaphore s'il est nommé.
Note:
Si le nom existe déjà, l'objet doit pouvoir être ouvert par l'utilisateur courant qui exécute le processus, ou une exception sera émise contenant le message d'erreur.
initialvalLa valeur initiale du sémaphore. Ce sera le nombre de verrous qui peuvent être obtenus.
autounlockSpécifie si l'on doit ou non déverouiller automatiquement le sémaphore à la fin du script PHP.
Si l'objet est un sémaphore nommé dont l'autounlock vaut FALSE, l'objet
est verrouillé, et le script PHP se termine avant que l'objet ne soit
déverouillé, alors le sémaphore sous-jacent se terminera dans un statut
non consistent.
Le nouvel objet SyncSemaphore. Une exception sera émise si le sémaphore ne peut être créé ou ouvert.
Exemple #1 Exemple avec SyncSemaphore::__construct()
<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);
if (!$semaphore->lock(3000))
{
echo "Impossible de verrouiller le sémaphore.";
exit();
}
/* ... */
$semaphore->unlock();
?>