[Vienna-pm] unterschiedliches SIGNAL-Trapping in den Childs und der Mama
gooly at gmx.at
gooly at gmx.at
Mon Apr 2 03:47:20 PDT 2007
Hallo,
ich hab ein Perl.prg, das mehrere (threaded) Kinder zeugt.
Da soll nun jedes ein eigenes gracefull-die hinlegen - wie geht das?
Derzeit (läuft wie soll) gibt es das Gracefull-Die nur bei der Mama! Die
Variablen der Kinder werden (noch) nicht gesichert, bzw immer gleich
weiter geschickt.
Die Mama hat das:
$SIG{PIPE} = 'ignore'; sub ignore { ; }
$SIG{TERM} = 'okDie';
$SIG{QUIT} = 'okDie';
$SIG{STOP} = 'okDie';
und in
sub okDIE{ .. }
mach Mama halt 'sauber'.
in jedem Kind gibt es nun die Endlosschleifen mit lokalen Variablen,
deren Inhalt aber jetzt noch schnell gesichert werden sollen.
Eigentlich würde ich mal frech den oberen Block der Mama einfach in
jeden Kinder-Package wiederholen, etwa so:
package Kind1;
...
$SIG{PIPE} = 'ignore'; sub ignore { ; }
$SIG{TERM} = 'myDieKind1';
$SIG{QUIT} = 'myDieKind1';
$SIG{STOP} = 'myDieKind1';
package Kind2;
...
$SIG{PIPE} = 'ignore'; sub ignore { ; }
$SIG{TERM} = 'myDieKind2';
$SIG{QUIT} = 'myDieKind2';
$SIG{STOP} = 'myDieKind2';
Aaaber, zB das
$SIG{PIPE} = 'ignore'; sub ignore { ; }
gilt ja für alle (Mama und all ihre Kinder) und verhindert, dass alle
sterben, wenn die Pipe zerbricht, daher könnte es sein, dass man nicht
so einfach die $SIG{..} in jedem Package bzw. Thread neu beschicken
kann/darf?
Kann mir da jemand weiterhelfen?
Danke schon mal,
Calli
More information about the Vienna-pm
mailing list