Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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.24.1			  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.1-RELEASE+and+Ports>

home | help