[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Блокировки в перле



Pavel Ammosov -> debian-russian@lists.debian.org  @ Thu, 7 Apr 2005 19:11:17 +0400:

 >> Интересно, это только в дебиане в перле flock по NFS не работает?
 >> fcntl(2) - работает...

 PA> flock в linux на NFS не лочит,
 PA> цитируя ман:
 PA> NOTES
 PA>        flock(2) does not lock files over NFS. Use fcntl(2) instead: that
 PA>        does work over NFS, given a sufficiently recent version of Linux
 PA>        and a server which supports locking.

 PA> причём как авторы умудрились такого добиться не понятно, учитывая что
 PA> flock в общем-то реализован в ядре через fcntl.

Уже нет.  Если верить его ману.  Не то, чтобы непонятно, нахрена -

       flock(2) and fcntl(2) locks have different semantics  with  respect  to
       forked processes and dup(2).

и я бы сказал, у fcntl семантика более правильная...

 PA> C fcntl и perl есть проблемы: ему нужна системозависимая структура после
 PA> pack(), так что приходится на все поддерживаемые платформы их готовить.
 PA> Написал кто единый модуль под fcntl-локинг, эхх.

Судя по perldoc -f flock, можно попросить perl при сборке пользоваться
fcntl.  И поскольку единственный возможный недостаток этого варианта,
судя по документации - то, что файл надо открывать в соответствующем
режиме, я задумался, не зафайлить ли багрепорт мейнтейнеру пакета, чтоб
собирал с -Ud_flock?  Что скажет общественность?

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru

Может, тебе еще секретный ключ от шкатулки с сильмариллами?
	(С)энта



Reply to: