rr has asked for the wisdom of the Perl Monks concerning the following question:
Am I retarded or is this incredibly weird? The following is what I get from using strace$fd = $s->fileno(); vec($rin, $fd, 1) = 1; vec($win, $fd, 1) = 1; $ein = $rin | $win; my $i; while (($nf, $tl) = select(undef, $wout=$win, $eout=$ein, 2)) { $i++; $ti = Time::HiRes::time() - $t0; print STDERR "write select loop count $i $ti\n"; if ($ti >= $f{'-timeout'}) { print STDERR "Timed out writing ($ti) $!\n"; return (-20, {}, "write_timeout", $ti); } if (vec($eout, $fd, 1) == 1) { print STDERR "Got an error while writing $! $@\n"; return (-20, {}, "write_error", $ti); } if (vec($wout, $fd, 1) == 1) { $b = syswrite($s, $msg, $l - $b, $b); $t = $t + $b; last if $t = $l; } }
FYI, this is perl5.8 (with ithreads) on both redhat and mandrake I tried with the most recent Net::SSLeay and IO::Socket::SSL from CPAN.select(8, NULL, [3 4 5], [3 4 5], {2, 0}) = -1 EBADF (Bad file descrip +tor)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: IO::Socket::SSL, perl5.8, or select bug?
by rr (Sexton) on Apr 21, 2003 at 19:22 UTC |