Dear Group.
I am very new to perl POE. I started to build an application. I need to
call an some program using POE::Wheel::Run.
I am here by sending the main code snippet.
-------------
POE::Component::Daemon->spawn(
detach =>0,
max_children=>1,
logfile=>$logfile,
verbose =>1
);
POE::Session->create(
inline_states=>{
_start=>\&start,
got_child_stdout=>\&print_me,
},
);
POE::Kernel->run();
exit;
sub start {
use POE qw(Component::Server::TCP);
my $PORT_NUMBER= 1122;
POE::Component::Server::TCP->new(
Port
=>$PORT_NUMBER,
ClientInput=>\&handle_input,
);
my ( $kernel, $heap ) = @_[ KERNEL, HEAP ];
$heap->{program} = POE::Wheel::Run->new
(
Program => PROGRAM,
StdoutEvent => "got_child_stdout",
);
}
sub handle_input {
my ($session,$heap,$input) [EMAIL PROTECTED],HEAP,ARG0];
$heap->{client}->put($input);
input_db($input);
}
sub PROGRAM { ... }
sub print_me { ... }
My main aim is to start some program with POE::Wheel::Run, but when I
start to run the code I got a warning message.
15394: SIGCHLD pid=15396 at
/usr/local/share/perl/5.8.8/POE/Component/Daemon.pm line 684.
15394: CHLD for 15396 child of someone else. at
/usr/local/share/perl/5.8.8/POE/Component/Daemon.pm line 716.
I am not sure what happened to my code. Later on while running the
code.by <http://code.by> saving some values to database via
input_db($input) the program get fails. I think that is because the
POE::Session's heap and POR::Wheel::Run's heap data get some conflict.
I am not sure. What wrong in between, either the the code or the program
flow.
Please help me.
Thanks in Advance.
Regards
Shyam