NAME

Coro::Handle - non-blocking io with a blocking interface.

SYNOPSIS

use Coro::Handle;

DESCRIPTION

This module implements io-handles in a coroutine-compatible way, that is, other coroutines can run while reads or writes block on the handle. It does NOT inherit from IO::Handle but uses tied objects.

$fh = new_from_fh Coro::Handle $fhandle [, arg => value...]

Create a new non-blocking io-handle using the given perl-filehandle. Returns undef if no fhandle is given. The only other supported argument is "timeout", which sets a timeout for each operation.

$fh = unblock $fh

This is a convinience function that just calls new_from_fh on the given filehandle. Use it to replace a normal perl filehandle by a non-blocking equivalent.

$fh->writable, $fh->readable

Wait until the filehandle is readable or writable (and return true) or until an error condition happens (and return false).

$fh->readline([$terminator])

Like the builtin of the same name, but allows you to specify the input record separator in a coroutine-safe manner (i.e. not using a global variable).

$fh->autoflush([...])

Always returns true, arguments are being ignored (exists for compatibility only).

BUGS

- Perl's IO-Handle model is THE bug.

AUTHOR

Marc Lehmann <pcg@goof.com>
http://www.goof.com/pcg/marc/

1 POD Error

The following errors were encountered while parsing the POD:

Around line 244:

You forgot a '=back' before '=head1'