parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

lockf

Александр Петросян (PAF) 18.11.2005 17:53 / 18.11.2005 18:07

радость случилась и на одном из наших проектов.
там .cgi

у нас дело было просто:
* по cron запустился процесс, который записал в hashfile и продолжал работать (hashfile не закрывал)
* очередной запрос захотел что-то считать, и не смог: принялся ожидать, как hashfile разблокируют: process STATE стал lockf.

или:
* по cron запустился процесс, который читал hashfile и продолжал работать (hashfile не закрывал)
* очередной запрос захотел что-то записать, и не смог: принялся ожидать, как hashfile разблокируют: process STATE стал lockf.

выход:
$hash[^hashfile::open[hf]]
#клонируем hashfile в память
#если в него потом будут записывать, эти данные на диск не попадут
$hash[^hash::create[$hash]]
#т.к. hashfile тут уже не лежит ни в одной переменной,
#сборщик мусора его соберёт, файл закроется и lock снимется
^memory:compact[]