Ответ 1
Я не думаю, что есть какой-либо способ сделать это в Windows без цикла ожидания ожидания/опроса.
PHP реализует flock
в окнах, используя LockFileEx
(см. flock_compat.c:132
). Как вы можете видеть из этих похожих вопросов, нет способа установить тайм-аут на LockFileEx
или отменить процесс, ожидающий запроса LockFileEx
(т.е. Для этого прецедента нет эквивалента для сигнала SIGALRM
):
- LockFile с таймаутом? (задано в 2011 году)
Q) Если я хочу дождаться блокировки файлов с таймаутом, как бы я это сделал?
...
A) напишите небольшой цикл, чтобы проверить код возврата
- "LockFileEx не может отключить его просто зависает" из списка рассылки
microsoft.public.win32.programmer.kernel
, 1997
Q) Кто-нибудь знает, как получить LockFileEx в тайм-аут?
...
A) у вас может быть только немедленное сбой, сон и возврат назад пока вы не достигнете предела повторной попытки.