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