in reply to Re: IPC via named pipes, losing some messages
in thread IPC via named pipes, losing some messages
# Non blocking open open (FH, "+<", $config->{'pipe'} ) || die "Unable to open $config->{' +pipe'}"; my $rin = ''; my $rout = ''; vec( $rin, fileno(FH), 1) = 1; # No, I have no idea either # Loop forever. while (1) { # Wait for the pipe to change status my $nfound = select( $rout = $rin, undef, undef, undef ); # blocki +ng select my $data; # Non blocking select only returns a value while there is somethin +g in the pipe while ( select( $rout = $rin, undef, undef, 0 ) ) { sysread FH, my $buf, 2048; $data .= $buf; } Log( { logfile => $log_file, text => 'trace: START: '. ( $data || +'$data no val' ) }) if TRACE; # 9/4/8 A request is C,DIR,1ROSE # Multiple requests can come through on one read ie C,FOO,1ROSEC,B +AR,1ROSE for ( split /ROSE/, $data ? $data : '' ) { if ( /^RELOAD/ ) { # Reread the config file Log({logfile=>$log_file, text=> qq{RELOAD: Reloading confi +g}}); load_config(); } else { process_input( { data => $_ } ) if $_; } } } # while 1
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: IPC via named pipes, losing some messages
by ikegami (Patriarch) on Apr 15, 2008 at 21:31 UTC | |
by ftumsh (Scribe) on Apr 23, 2008 at 11:24 UTC | |
by ikegami (Patriarch) on May 01, 2008 at 09:21 UTC | |
by ftumsh (Scribe) on May 14, 2008 at 11:34 UTC | |
by ikegami (Patriarch) on May 14, 2008 at 14:50 UTC |