I need to be able to start a child POE process that stays alive even
when it has no events to keep it alive. The POE::Kernel man page
indicates that if I set an alias for the child, it will demonise itself
and stay alive. However when I try this with the following code ,
process with ID =5 still dies.
Why is this so?
Richard Liu
#!/usr/bin/perl -w
use strict;
# Use POE!
use POE;
sub handler_start {
my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
print "Session ", $session->ID, " has started.\n";
if ($session->ID == 5 ) {
print "Settin alias for ", $session->ID, "\n";
$kernel->alias_set('five');
}
$heap->{count} = 0;
$kernel->yield('increment');
}
sub handler_increment {
my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
print "Session ", $session->ID, " counted to ",
++$heap->{count}, ".\n";
$kernel->yield('increment') if $heap->{count} < 10;
}
sub handler_stop {
print "Session ", $_[SESSION]->ID, " has stopped.\n";
}
for (0..9) {
POE::Session->create(
inline_states =>
{ _start => \&handler_start,
increment => \&handler_increment,
_stop => \&handler_stop,
}
);
}
$poe_kernel->run();
exit;
--
Richard Liu <[EMAIL PROTECTED]>