Perl Module for Asynchronous Input/Output
This module implements asynchronous I/O using whatever means your operating
system supports. It is implemented as an interface to libeio
(http://software.schmorp.de/pkg/libeio.html).
Asynchronous means that operations that can normally block your program (e.g.
reading from disk) will be done asynchronously: the operation will still block,
but you can do something else in the meantime. This is extremely useful for
programs that need to stay interactive even when doing heavy I/O (GUI programs,
high performance network servers etc.), but can also be used to easily do
operations in parallel that are normally done sequentially, e.g. stat'ing many
files, which is much faster on a RAID volume or over NFS when you do a number
of stat operations concurrently.
While most of this works on all types of file descriptors (for example
sockets), using these functions on file descriptors that support nonblocking
operation (again, sockets, pipes etc.) is very inefficient. Use an event loop
for that (such as the EV module): IO::AIO will naturally fit into such an event
loop itself.
In this version, a number of threads are started that execute your requests and
signal their completion. You don't need thread support in perl, and the threads
created by this module will not be visible to perl. In the future, this module
might make use of the native aio functions available on many operating systems.
However, they are often not well-supported or restricted (GNU/Linux doesn't
allow them on normal files currently, for example), and they would only support
aio_read and aio_write, so the remaining functionality would have to be
implemented using threads anyway.
- Sources inherited from project devel:languages:perl
-
2
derived packages
- Download package
-
Checkout Package
osc -A https://api.opensuse.org checkout home:Tomcat42/perl-IO-AIO && cd $_
- Create Badge
Source Files
Filename | Size | Changed |
---|---|---|
IO-AIO-4.6.tar.gz | 0000172531 168 KB | |
cpanspec.yml | 0000000669 669 Bytes | |
perl-IO-AIO.changes | 0000010270 10 KB | |
perl-IO-AIO.spec | 0000004298 4.2 KB |
Revision 7 (latest revision is 14)
- Fix autogenerated changes - updated to 4.6 see /usr/share/doc/packages/perl-IO-AIO/Changes TODO: dump config.log when automated testign and configure fails 4.6 - add st_btime, st_btimesec, st_btimensec and st_gen accessors, mostly for bsds which expose birthtime and st_gen members (netbsd, freebsd but only st_gen on openbsd because they compiled their perl without support for birthtimes). - fix madvise and munlock to properly support negative offsets. - allocate fd for the aio_close at boot time, to guarantee it working later, rather than calling abort when it fails. also avoids close-on-exec race issues after module load. - #undef utime on win32, maybe this helps some reports of utime hangs. - minor doc improvements. - minor configure cleanups. - use $Config{perllibs} instead of libs for configure. might help people who didn'T install all perl dependencies (might break things as well). - updated to 4.54 see /usr/share/doc/packages/perl-IO-AIO/Changes 4.54 - include sys/mkdev.h or sys/sysmacros.h if available. - further tweaks to configure invocation for systems requiring --rpath. - no longer rely on custom paths on win32 platforms. - try to work around buggy PAGESIZE macro on solaris. 4.53 - add $Config{libs} to LIBS for configure, to work around systems with broken library dependencies (... openbsd). - updated to 4.52 see /usr/share/doc/packages/perl-IO-AIO/Changes - updated to 4.5 see /usr/share/doc/packages/perl-IO-AIO/Changes - updated to 4.4 see /usr/share/doc/packages/perl-IO-AIO/Changes - updated to 4.34 see /usr/share/doc/packages/perl-IO-AIO/Changes TODO: lchown
Comments 0