$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; } }