Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  12 Oct 2000  13:59:24
 To : zerge@land5.nsu.ru
 Subject : Re: flock() или ...
 -------------------------------------------------------------------------------- 
 
 zlnr> была такая фишка: один срипт должен был писАть в файлик (добавлять
 zlnr> строчечку), ну и при открытии делал на него flock(), потом просто
 zlnr> закрывал его. Вроде всё нормально... Hо в какой-то момент, он перестал
 zlnr> добавлять в этот файлик строчечки, ну, думаю, баг, начал копать -
 zlnr> вставлять всякие принты, вываливающиеся прямо на страничку... всё вроде
 zlnr> нормалёк - кусок кода отработал, все переменные правильные, все if'ы и
 zlnr> for'ы проходят... я задумался... потом снова полез в файлик, и, о чудо!,
 zlnr> добавилась нужная строчечка. Тут я снова задумался "какого [cencored]
 zlnr> спрашивается?". Меня стали грызть нехорошие мысли - а если ещё раз такая
 zlnr> же хрень приключится?  Вот и задаю вопрос многоуважаемому Аллу: как
 zlnr> ентот flock работает? если скрипт ломается посередине, то снимается ли с
 zlnr> файла lock? и как вообще реализован этот flock? а может и не в flock'e
 zlnr> дело?
 
 Если не оговорено особо, то flock ждет до того момента, когда ему позволят
 залочить файлхендл указанным образом. Лочит и продолжает работать. Лок
 автоматически снимается по закрытии файла, независимо от того, каким образом
 закрыли файл (по close, по сдыхании данного процесса, ...) Тонкость - сдыхание
 скрипта, вообще говоря, не означает сдыхания процесса - скрипт может
 выполняться, скажем, под mod_perl. Посему в подобных ситуациях полезно лочить
 не файлхендл, а my-переменную класса File::Handle или подобных - если все не
 совсем плохо, то по смерти скрипта переменная будет удалена штатно, а
 следовательно, файл закрыт.
 
 -- 
 Счастливо!
   Ран.
 --- ifmail v.2.14.os-p7-tma3
  * Origin: MemoNet (2:5020/371.32@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: flock() или ...   Artem Chuprina   12 Oct 2000 13:59:24 
Архивное /ru.perl/171219efd7257.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional