(PECL sync >= 1.0.0)
SyncSemaphore::__construct — Создаёт новый объект SyncSemaphore
Создаёт именованный или безымянный семафор.
name
Имя семафора, если это именованный объект семафора.
Замечание:
Если имя уже существует, оно должно быть доступно для открытия текущим пользователем, от имени которого запущен процесс, иначе будет выброшено исключение с бессмысленным сообщением об ошибке.
initialval
Начальное значение семафора. Это количество блокировок, которое можно получить.
autounlock
Указывает, следует ли автоматически разблокировать семафор при завершении скрипта PHP.
Если объект - это: именованный семафор с autounlock со значением false
, объект
заблокирован и скрипт PHP завершается до того, как объект разблокируется,
то базовый семафор окажется в несогласованном состоянии.
Новый объект SyncSemaphore.
Если семафор не может быть создан или открыт, выбрасывается исключение.
Пример #1 Пример использования SyncSemaphore::__construct()
<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);
if (!$semaphore->lock(3000))
{
echo "Невозможно заблокировать семафор.";
exit();
}
/* ... */
$semaphore->unlock();
?>