FreeBSD Manual Pages
PerlIO::via::Timeout(3User Contributed Perl DocumentatiPerlIO::via::Timeout(3) NAME PerlIO::via::Timeout - a PerlIO layer that adds read & write timeout to a handle VERSION version 0.32 SYNOPSIS use Errno qw(ETIMEDOUT); use PerlIO::via::Timeout qw(:all); open my $fh, '<:via(Timeout)', 'foo.html'; # set the timeout layer to be 0.5 second read timeout read_timeout($fh, 0.5); my $line = <$fh>; if ($line == undef && 0+$! == ETIMEDOUT) { # timed out ... } DESCRIPTION This package implements a PerlIO layer, that adds read / write timeout. This can be useful to avoid blocking while accessing a handle (file, socket, ...), and fail after some time. The timeout is implemented by using "<select"> on the handle before reading/writing. WARNING the handle won't timeout if you use "sysread" or "syswrite" on it, because these functions works at a lower level. However if you're trying to implement a timeout for a socket, see IO::Socket::Timeout that implements exactly that. FUNCTIONS read_timeout # set a read timeout of 2.5 seconds read_timeout($fh, 2.5); # get the current read timeout my $secs = read_timeout($fh); Getter / setter of the read timeout value. write_timeout # set a write timeout of 2.5 seconds write_timeout($fh, 2.5); # get the current write timeout my $secs = write_timeout($fh); Getter / setter of the write timeout value. enable_timeout enable_timeout($fh); Equivalent to setting timeout_enabled to 1 disable_timeout disable_timeout($fh); Equivalent to setting timeout_enabled to 0 timeout_enabled # disable timeout timeout_enabled($fh, 0); # enable timeout timeout_enabled($fh, 1); # get the current status my $is_enabled = timeout_enabled($fh); Getter / setter of the timeout enabled flag. has_timeout_layer if (has_timeout_layer($fh)) { # set a write timeout of 2.5 seconds write_timeout($fh, 2.5); } Returns wether the given filehandle is managed by PerlIO::via::Timeout. SEE ALSO PerlIO::via THANKS TO Vincent Pit Christian Hansen Leon Timmmermans AUTHOR Damien "dams" Krotkine COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Damien "dams" Krotkine. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.32.0 2015-07-30 PerlIO::via::Timeout(3)
NAME | VERSION | SYNOPSIS | DESCRIPTION | FUNCTIONS | SEE ALSO | THANKS TO | AUTHOR | COPYRIGHT AND LICENSE
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=PerlIO::via::Timeout&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>