Реклама на сайте Advertise with us
Тема: Как правильно лочить файл в PHP Расширенный поиск по форуму
 
Внимание! В связи с устареванием топика эта страница была взята из кэша.
Автор Сообщение
Информация о пользователе just_beginner


Зарегистрирован: 07.05.04
Сообщения: 606
Ссылка на сообщениеДобавлено: 12/08/04 в 21:44     

Вопрос: Что если два процесса одновременно попытаются залочить файл. Один из них понятное дело залочит, а вот что будет делать другой с залоченным файлом? Как это обойти.

K началу

 
Информация о пользователе webboxxx


Зарегистрирован: 06.03.03
Сообщения: 405
Ссылка на сообщениеДобавлено: 12/08/04 в 22:54     

функция flock() не отдаст управление скрипту, пока файл не будет разлочен. делаем так:

Код:

$f=@fopen($file,'w');
if(flock($f,2))
{
... do something ...
flock($f,3);
}
fclose($f);

пользуюсь таким вариантом, сбоев не было.
здесь в момент flock($f,2) происходит попытка лока, и если она неудачна, то пхп будет пытаться сделать это снова и снова, пока другой процесс не освободит файл и сам потом поставит на него свой лок. Проверял сам. Вот только какие там тайм-лимиты существуют (должны же быть по идее) - этого не знаю.

PS я вроде писал об этом в прошлом топике про локи... icon_smile.gif

K началу

 
Информация о пользователе Caliostro


Зарегистрирован: 28.07.04
Сообщения: 104
Ссылка на сообщениеДобавлено: 12/08/04 в 23:32     

just_beginner писал:
Вопрос: Что если два процесса одновременно попытаются залочить файл. Один из них понятное дело залочит, а вот что будет делать другой с залоченным файлом? Как это обойти.


епт... что делать, что делать... ждать он будет... если один залочил, второй будет ждать... на то она и блокировка...

K началу

 
Информация о пользователе just_beginner


Зарегистрирован: 07.05.04
Сообщения: 606
Ссылка на сообщениеДобавлено: 13/08/04 в 12:53     

2webboxxx: Спасибо.
2Caliostro: Меня всгда такие как ты удивляли. Ну если нечего по топику конкретно сказать, зачем чушь нести всякую!? Мне был непонятен сабж, попросил объяснить. Что тут такого!? Тоже мне, блин, ГРАФФФ <- smail01.gif

K началу

 
Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!
Внимание! В связи с устареванием топика эта страница была взята из кэша.

Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »