Я использую простой тестовый скрипт с http://www.tuxradar.com/practicalphp/8/11/0 вот так
<?php
$fp = fopen("foo.txt", "w");
if (flock($fp, LOCK_EX)) {
print "Got lock!\n";
sleep(10);
flock($fp, LOCK_UN);
}
я открыл 5 оболочек и выполнил скрипт один за другим, скрипты блокируются до тех пор, пока блокировка не будет освобождена, а затем продолжается после освобождения
меня не очень интересуют вещи php, но мой вопрос: кто-нибудь знает порядок, в котором приобретается flock()?
e.g.
t0: process 1 lock's
t1: process 2 try_lock < blocking
t2: process 3 try_lock < blocking
t3: process 1 releases lock
t4: ?? which process get's the lock?
существует ли простой детерминированный порядок, такой как очередь, или ядро «просто» выбирает его по «более продвинутым правилам»?