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: