Coro::AIO man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

AIO(3)		      User Contributed Perl Documentation		AIO(3)

NAME
       Coro::AIO - truly asynchronous file and directory I/O

SYNOPSIS
	  use Coro::AIO;

	  # can now use any of the aio requests your IO::AIO module supports.

	  # read 1MB of /etc/passwd, without blocking other coroutines
	  my $fh = aio_open "/etc/passwd", O_RDONLY, 0
	     or die "/etc/passwd: $!";
	  aio_read $fh, 0, 1_000_000, my $buf, 0
	     or die "aio_read: $!";
	  aio_close $fh;

DESCRIPTION
       This module is an AnyEvent user, you need to make sure that you use and
       run a supported event loop.

       This module implements a thin wrapper around IO::AIO. All of the
       functions that expect a callback are being wrapped by this module.

       The API is exactly the same as that of the corresponding IO::AIO
       routines, except that you have to specify all arguments, even the ones
       optional in IO::AIO, except the callback argument. Instead of calling a
       callback, the routines return the values normally passed to the
       callback. Everything else, including $! and perls stat cache, are set
       as expected after these functions return.

       You can mix calls to "IO::AIO" functions with calls to this module. You
       must not, however, call these routines from within IO::AIO callbacks,
       as this causes a deadlock. Start a coro inside the callback instead.

       This module also loads AnyEvent::AIO to integrate into the event loop
       in use, so please refer to its (and AnyEvent's) documentation on how it
       selects an appropriate event module.

       All other functions exported by default by IO::AIO (e.g. "aioreq_pri")
       will be exported by default by Coro::AIO, too.

       Functions that can be optionally imported from IO::AIO can be imported
       from Coro::AIO or can be called directly, e.g. "Coro::AIO::nreqs".

       You cannot specify priorities with "aioreq_pri" if your coroutine has a
       non-zero priority, as this module overwrites the request priority with
       the current coroutine priority in that case.

       For your convenience, here are the changed function signatures for most
       of the requests, for documentation of these functions please have a
       look at IO::AIO. Note that requests added by newer versions of IO::AIO
       will be automatically wrapped as well.

       @results = aio_wait $req
	   This is not originally an IO::AIO request: what it does is to wait
	   for $req to finish and return the results. This is most useful with
	   "aio_group" requests.

	   Is currently implemented by replacing the $req callback (and is
	   very much like a wrapper around "$req->cb ()").

       $fh = aio_open $pathname, $flags, $mode
       $status = aio_close $fh
       $retval = aio_read  $fh,$offset,$length, $data,$dataoffset
       $retval = aio_write $fh,$offset,$length, $data,$dataoffset
       $retval = aio_sendfile $out_fh, $in_fh, $in_offset, $length
       $retval = aio_readahead $fh,$offset,$length
       $status = aio_stat $fh_or_path
       $status = aio_lstat $fh
       $status = aio_unlink $pathname
       $status = aio_rmdir $pathname
       $entries = aio_readdir $pathname
       ($dirs, $nondirs) = aio_scandir $path, $maxreq
       $status = aio_fsync $fh
       $status = aio_fdatasync $fh
       ... = aio_xxx ...
	   Any additional aio requests follow the same scheme: same parameters
	   except you must not specify a callback but instead get the callback
	   arguments as return values.

SEE ALSO
       Coro::Socket and Coro::Handle for non-blocking socket operation.

AUTHOR
	Marc Lehmann <schmorp@schmorp.de>
	http://home.schmorp.de/

perl v5.14.2			  2011-11-11				AIO(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net