|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Yuriy Kaminskiy 2:5020/517.21 31 May 2001 18:10:12 To : Konstantin Tokar Subject : Re: Расскажите, как нормально дедается блокирование файла -------------------------------------------------------------------------------- Hello, Konstantin! >>>>> On 11:05 30/5/2001, tokar@apmsun.mpei.ac.ru writes: KT> Вот пример из документации по DB_File. Я примерно так (с каким-то KT> косметическим изменением) делал. Хотя я бы пару раз подумал - а стоит ли KT> писать в один и тот же файл разным скриптам - задержки могут быть, и KT> неразбериха. Хрр. А теперь идем читать perldoc от не слишком старого DB_File (к примеру, идущего с perl-5.6.0 - $DB_File::VERSION=1.72), почему это _не будет_ работать (hint: во время tie... в память читается начальный блок базы; если он будет изменен между tie и flock - oops). Варианты - либо пользоваться Berkeley DB 2.x и use BerkeleyDB (в них локи встроенные), либо пользоваться модулями Tie::DB_Lock/Tie::DB_LockFile/DB_File::Lock - см. perldoc DB_File. KT> sub LOCK_SH { 1 } KT> sub LOCK_EX { 2 } KT> sub LOCK_NB { 4 } KT> sub LOCK_UN { 8 } Hу, про это уже сказали - use Fcntl qw(:flock); KT> $db->sync; # to flush KT> sleep 10; sleep тут - как пятое колесо телеге. KT> flock(DB_FH, LOCK_UN); -- Yuriy Kaminskiy. --- Gnus v5.2.25/XEmacs 19.14 * Origin: none (2:5020/517.21@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1742729dca2d4.html, оценка из 5, голосов 10
|