Внимание! В связи с устареванием топика эта страница была взята из кэша.
|
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 я вроде писал об этом в прошлом топике про локи...
|
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: Меня всгда такие как ты удивляли. Ну если нечего по топику конкретно сказать, зачем чушь нести всякую!? Мне был непонятен сабж, попросил объяснить. Что тут такого!? Тоже мне, блин, ГРАФФФ <-
|
K началу
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
Внимание! В связи с устареванием топика эта страница была взята из кэша.
|