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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  15 Jan 2001  11:31:23
 To : Andrei V. Lisyansky
 Subject : Re: flock
 -------------------------------------------------------------------------------- 
 
 В твоём письме от Sat, 13 Jan 2001 18:20:35 +0300 написано:
 
 DW>>> Почемy ActivePerl for Win32 не понимает сабжевyю командy?
 AC>> Потому что операционная система MS-DOS и графические надстройки над
 AC>> ней не поддерживают такие локи. В NT понимает.
 
 AVL> Я конечно  извиняюсь за запоздалую реакцию на  данное письмо, но не проще
 AVL> ли обойти flock() следующей конструкцией?:
 
 Проще. Hо не годится.
 AVL>  while (-e "lockfile") {sleep(1);} #Вдруг  кто-то уже работает  с файлом,
 AVL> ждём!
 
 Во-первых, вот в этот момент кто-то влезает и создает этот файл...
 
 AVL>  open LOCK, ">lockfile"; close LOCK; #Дождались, создаём  свой.
 
 Поверх вышеупомянутого.
 
 Мораль: вероятность race condition снижается, но совсем не до нуля.
 
 AVL>  open (FILE, ">file.ext") || &filedie; #Работаем с файлом
 AVL>  print FILE "test";
 AVL>  close FILE;
 
 AVL>  unlink ("lockfile");      #Удаляем залочку
 
 AVL>  sub filedie
 AVL>  {
 AVL>  unlink("lockfile");
 AVL>  die "Source file was not found";
 AVL>  }
 
 Далее, unlink надо, помимо всего прочего, вешать обработчиком die (то есть
 писать в $SIG{__DIE__}, и проверять его возраст и все такое, потому что он
 может остаться от неудачно (например, по GPF) сдохшей программы. Что уже
 требует сложной и неочевидной логики.
 
 -- 
 Artem Chuprina                            E-mail: ran@ran.pp.ru
 Programmer                                  FIDO: 2:5020/371.32
 Memonet Ltd.                             Phone: +7-095-284-1356
 --- slrn/0.9.6.3-as (Linux)
  * Origin: AKA с подствольным плюсомётом (2:5020/371.32)
 
 

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

 Тема:    Автор:    Дата:  
 flock   Andrei V. Lisyansky   13 Jan 2001 19:20:35 
 flock   Sly Golovanov   15 Jan 2001 04:30:41 
 flock   Andrei V. Lisyansky   16 Jan 2001 20:02:30 
 Re: flock   Artem Chuprina   18 Jan 2001 13:00:24 
 Re: flock   Michael Samanov   19 Jan 2001 00:45:51 
 flock   Sly Golovanov   17 Jan 2001 12:31:01 
 flock   Yan Alexandrovsky   15 Jan 2001 08:35:49 
 flock   Andrei V. Lisyansky   16 Jan 2001 19:57:46 
 flock   Yan Alexandrovsky   18 Jan 2001 09:03:00 
 Re: flock   Artem Chuprina   15 Jan 2001 11:31:23 
 flock   Andrei V. Lisyansky   16 Jan 2001 20:10:44 
 Re: flock   Michael Samanov   17 Jan 2001 10:34:28 
Архивное /ru.cgi.perl/72547f27dbfd9.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional