flock
Honza Pazdziora
adelton na informatics.muni.cz
Sobota Leden 16 17:33:17 MET 1999
>
> Serializace probiha v poradku, ale je to skoro stejne pomale. On totiz
> ten perl zabere uz pri startu tolik pameti, ze pri nekolika instancich
> (byt i nebezicich a cekajicich ve flock()) ten stroj zacne swapovat.
> Otazka 1: Lze perlu nejak vysvetlit, aby neparsoval cely program, ale
> nejak postupne?
TIMTOWTDI, cili je tady vypisu, protoze doporuceni dat zplacu si
netroufnu:
- Doplnek te inicializacni casti dat do separatniho souboru a teprve
az je ten pravy cas dat require "vlastni_funkce_meho_programu.pl".
Nesmi to byt use;
- Napsat ten doplnek za radek
__DATA__
a v te inicializacni casti dat neco jako (cti untested)
my $code = join '', <DATA>;
eval $code;
tim se parsovani a kompilace odlozi zase az na runtime;
- Vyhrat si s autoloadovanim.
Podstatne je, ze v te inicializacni casti musi byt minimum (zadne?)
use.
> Snazil jsem se to resit tak, ze vytvorim zamek v malinkem
> Perlovem skriptu, ktery pak exec()ne ten hlavni. Problem je, ze Perl
> tomu souboru nejak asi nastavi close-on-exec flag, takze po exec zustane
> zamek odemceny. Nebo snad pred exec() sam ten soubor zavre. Proc to Perl
> dela? Kdyz si napisu program v C, ktery zavola flock() na dany soubor
> a pak exec()uje perlovy skript, funguje to spravne.
Ano, tipnul bych si, ze mu dava close-on-exec. Podivej se do
perlvar(1) na cast $^F. Pokud by ani to nepomohlo, videl bych mozny
problem uz snad jen v tom, ze to treba volas jednoargumentovym volanim
a to jde pres shell, ktery to nejak ponici.
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
Boycott the Czech Telecom -- www.bojkot.cz
------------------------------------------------------------------------
Další informace o konferenci Perl