eio 1.1.0

Provides interface to the libeio library


This extension provides interface to the libeio library written by Marc Lehmann
(see http://software.schmorp.de/pkg/libeio.html).

Libeio is a an asynchronous I/O library. Features basically include
asynchronous versions of POSIX API(read, write, open, close, stat, unlink,
fdatasync, mknod, readdir etc.); sendfile (native on Solaris, Linux, HP-UX,
FreeBSD); readahead. libeio itself emulates the system calls, if they are not
available on specific(UNIX-like) platform.

Currently this extension supports GNU/Linux and BSD platforms only. But you can
try it on any UNIX OS.

License: php

Changes

Change: eio_init() deprecated. Will be removed in future. We use pthread_atfork() to re-init eio after a fork
Add: phpt test for the fork support
Fix: tsrm_ls is not initialized in php_eio_init()
Fix: EFD_NONBLOCK and EFD_CLOEXEC used despite the flags were not available until kernel 2.6.7. For the old kernels we call fcntl.
Refact: set FD_CLOEXEC flag for file descriptor opened with eio_open()
Refact: no need to copy zval when passing request resource to eio_grp_*()
Fix: eio_grp_*() didn't initialize eio automatically