[Vienna-pm] anmerkungen ..

gooly at gmx.at gooly at gmx.at
Mon May 28 00:29:52 PDT 2007


Am Sonntag, 27. Mai 2007 schrieb Peter J. Holzer:
> On 2007-05-26 12:09:00 +0200, gooly at gmx.at wrote:
> > Am Freitag, 25. Mai 2007 schrieb Peter J. Holzer:
> > > On 2007-05-25 18:09:18 +0200, gooly at gmx.at wrote:
> > > > foreach my $f ( liesFiles($FileDir) ) {
> > > >    open( STDOUT, "<&", $SOCKET )  or warn "can't dup to
> > >
> > > Das ist verwirrend. Du öffnest hier STDOUT zum Lesen.
>
> [...]
>
> > > >    open( STDOUT, "<&SAVEOUT" ) or warn "can't restore stdout:
> > > > $!\n";
> > >
> > > Und da auch. Kannst Du danach noch auf STDOUT schreiben?
> >
> > Ja, ich kriegte nur einen Warung.
>
> Bei mir (perl, v5.8.8 built for i486-linux-gnu-thread-multi) geht das
> nämlich nicht:
>
> #!/usr/bin/perl
>
> open(SAVEOUT, "<&STDOUT") or warn "can't save stdout: $!\n";
> open(STDOUT, ">foo1");
> open( STDOUT, "<&SAVEOUT" ) or warn "can't restore stdout: $!\n";
>
> print STDOUT "test\n" or warn "cannot write to stdout: $!\n";
>
> ergibt:
>
> cannot write to stdout: Bad file descriptor
>
> > Aber zur Sicherheit alle drei
> > open 'gehen mit' ">&"?
>
> Ja, schließlich willst Du den Filedescriptor zum Schreiben öffnen.
>
> > > Eine Methode, Memory-Leaks zu vermeiden, ist es zu forken und die
> > > eigentliche Arbeit im Kind-Prozess zu machen.
> >
> > Ja, aber dann hätt ich lauter forks in in forks in forks..
>
> Warum das?
Nun, ein Server wartet auf clients und 'forket' dann, wenn in dieser 
Anwendung nun weitere Prozesse starten müssen, die ihrerseits dann...

Wenn Perl (so wie 'andere' auch) forket, wird das Programm ja geklont.
Da habe ich dann die Situation, dass der Server für jede Client dessen 
eigenes Datenquellprogramm startet. Wenn das aber nicht so ideal ist, 
bei einer zeitkritischen Anwendungen zB, die bestimmten Dingen einen 
Zeitstempel verpassen und die von unterschiedlichen Dingen abhängen: 
der steht, bis er Daten kriegt, der zweite soll aber genau zur vollen 
Minute 'was machen', dann ist es dies Konzept nicht mehr so gut. Und 
das Prinzip Radio mit ein und derselben 'live'-Datenquelle für alle 
Clienten habe ich in der umfangreichen 'Literatur' nicht gefunden..

Daher funktioniert auch nicht das:
>also ich verwende da Net::Server mit der PreFork config,
>ist mit 5-8 zeilen zu configgen und am laufen.

Dazu kommen dann noch die Programme, die zu bestimmten Abständen die 
Daten verwalten und aufräumen..

Na, noch schöne Pfingsten..
Calli







More information about the Vienna-pm mailing list