Запросить семафор PHP без блокировки? - PullRequest
10 голосов
/ 21 декабря 2009

Можно ли запросить семафор, созданный с помощью sem_get, без фактической блокировки, как это делает функция sem_acquire?

Ура, Dan.

Ответы [ 2 ]

6 голосов
/ 21 декабря 2009

К сожалению, PHP в настоящее время не поддерживает неблокирующие семафоры.

Если что-то подобное необходимо, вы можете использовать семафоры вместе с общей памятью для создания собственных неблокирующих механизмов блокировки.

Используйте переменную общей памяти, чтобы указать, существует ли блокировка, а затем используйте семафор для операций с этой переменной.

0 голосов
/ 22 апреля 2017

Начиная с PHP 5.6.1, он поддерживает параметр $ nowait для sem_acquire:

bool sem_acquire ( resource $sem_identifier [, bool $nowait = false ] )
...