1PerlIO::via::Timeout(3pUms)er Contributed Perl DocumentatPieornlIO::via::Timeout(3pm)
2
3
4

NAME

6       PerlIO::via::Timeout - a PerlIO layer that adds read & write timeout to
7       a handle
8

VERSION

10       version 0.32
11

SYNOPSIS

13         use Errno qw(ETIMEDOUT);
14         use PerlIO::via::Timeout qw(:all);
15         open my $fh, '<:via(Timeout)', 'foo.html';
16
17         # set the timeout layer to be 0.5 second read timeout
18         read_timeout($fh, 0.5);
19
20         my $line = <$fh>;
21         if ($line == undef && 0+$! == ETIMEDOUT) {
22           # timed out
23           ...
24         }
25

DESCRIPTION

27       This package implements a PerlIO layer, that adds read / write timeout.
28       This can be useful to avoid blocking while accessing a handle (file,
29       socket, ...), and fail after some time.
30
31       The timeout is implemented by using "<select"> on the handle before
32       reading/writing.
33
34       WARNING the handle won't timeout if you use "sysread" or "syswrite" on
35       it, because these functions works at a lower level. However if you're
36       trying to implement a timeout for a socket, see IO::Socket::Timeout
37       that implements exactly that.
38

FUNCTIONS

40   read_timeout
41         # set a read timeout of 2.5 seconds
42         read_timeout($fh, 2.5);
43         # get the current read timeout
44         my $secs = read_timeout($fh);
45
46       Getter / setter of the read timeout value.
47
48   write_timeout
49         # set a write timeout of 2.5 seconds
50         write_timeout($fh, 2.5);
51         # get the current write timeout
52         my $secs = write_timeout($fh);
53
54       Getter / setter of the write timeout value.
55
56   enable_timeout
57         enable_timeout($fh);
58
59       Equivalent to setting timeout_enabled to 1
60
61   disable_timeout
62         disable_timeout($fh);
63
64       Equivalent to setting timeout_enabled to 0
65
66   timeout_enabled
67         # disable timeout
68         timeout_enabled($fh, 0);
69         # enable timeout
70         timeout_enabled($fh, 1);
71         # get the current status
72         my $is_enabled = timeout_enabled($fh);
73
74       Getter / setter of the timeout enabled flag.
75
76   has_timeout_layer
77         if (has_timeout_layer($fh)) {
78           # set a write timeout of 2.5 seconds
79           write_timeout($fh, 2.5);
80         }
81
82       Returns wether the given filehandle is managed by PerlIO::via::Timeout.
83

SEE ALSO

85       PerlIO::via
86

THANKS TO

88       Vincent Pit
89       Christian Hansen
90       Leon Timmmermans
91

AUTHOR

93       Damien "dams" Krotkine
94
96       This software is copyright (c) 2013 by Damien "dams" Krotkine.
97
98       This is free software; you can redistribute it and/or modify it under
99       the same terms as the Perl 5 programming language system itself.
100
101
102
103perl v5.34.0                      2022-01-21         PerlIO::via::Timeout(3pm)
Impressum