Maybe I just don't understand..
but wont there _always_ be data to read from netstat?
to me, it seems as tho the loop _not_ work as intended, it
would always pass the can_read and read data from netstat and 
never parse the other code?

Regards,
Ron

> -----Original Message-----
> From: David M. Lloyd [mailto:[EMAIL PROTECTED]]
> Sent: June 29, 2001 10:37
> To: Ronald J. Yacketta
> Cc: Perl
> Subject: RE: background processing (again?)
> 
> 
> On Thu, 28 Jun 2001, Ronald J. Yacketta wrote:
> 
> > I have heard doing it this way will cause grief.. need blocking i/o or
> > something along that lines. Also, I head that the flow of the program
> > would _stop_ when reading the data...
> > 
> > are there any other solutions?
> 
> You can get around blocking I/O by using the IO::Select module:
> 
> ### PERL
> 
> open NETSTAT, "netstat -I hme0 $SLEEPTIME |" or die "Can't start 
> netstat: $!\n";
> 
> my $select = new IO::Select;
> 
> $select->add_reader(\*NETSTAT);
> 
> while (1) {
> 
>       if ($select->can_read(0)) {
>           # There is data so read it
>       } else {
>           # do something else while we wait
>       }
> }
> 
> ### END PERL
> 
> > P.S.
> > kk, I never did get you example code working under Solaris, it 
> works fine
> > under Linux
> 
> If you're talking about my code, be aware that 'netstat' takes different
> arguments based on which platform you're on.
> 
> - D
> 
> <[EMAIL PROTECTED]>
> 
> 
> 

Reply via email to