[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