Perl Flock не работает из CGI - PullRequest
       4

Perl Flock не работает из CGI

0 голосов
/ 15 сентября 2011

(Перед запуском приведенного ниже сценария замените / home / porton / t / MOVE на путь к файлу, который вы имеете право создавать или удалять.)

Когда я запускаю этот сценарий из командной строки ив течение 10 секунд снова запустить тот же сценарий из командной строки, он печатает то, что я ожидаю:

Flock: 1

и

Flock: 0

соответственно.

Но когда я запускаю егодважды (с интервалом между запросами менее 10 секунд) как CGI, равный http://test.localhost/cgi-bin/test2.pl, он печатает

Flock: 1

для обоих двух запросов CGI.

Чтоэто ошибка?Почему он работает неожиданным образом при запуске из CGI?

#!/usr/bin/perl

use strict;
use warnings;

use Fcntl qw(:flock);

print "Content-Type: text/plain\n\n";

open(my $lock_fh, '>', "/home/porton/t/MOVE");

print "Flock: " . flock($lock_fh, LOCK_EX|LOCK_NB) . "\n";

sleep 10;

1 Ответ

3 голосов
/ 15 сентября 2011

Вы уверены, что два запроса работают параллельно?Они могут обрабатываться последовательно, то есть второй запрос может быть обработан после завершения первого запроса и после снятия блокировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...