… | |
… | |
356 | |
356 | |
357 | In theory, the $whence constants could be different than the |
357 | In theory, the $whence constants could be different than the |
358 | corresponding values from Fcntl, but perl guarantees they are the |
358 | corresponding values from Fcntl, but perl guarantees they are the |
359 | same, so don't panic. |
359 | same, so don't panic. |
360 | |
360 | |
|
|
361 | As a GNU/Linux (and maybe Solaris) extension, also the constants |
|
|
362 | "IO::AIO::SEEK_DATA" and "IO::AIO::SEEK_HOLE" are available, if they |
|
|
363 | could be found. No guarantees about suitability for use in |
|
|
364 | "aio_seek" or Perl's "sysseek" can be made though, although I would |
|
|
365 | naively assume they "just work". |
|
|
366 | |
361 | aio_read $fh,$offset,$length, $data,$dataoffset, $callback->($retval) |
367 | aio_read $fh,$offset,$length, $data,$dataoffset, $callback->($retval) |
362 | aio_write $fh,$offset,$length, $data,$dataoffset, $callback->($retval) |
368 | aio_write $fh,$offset,$length, $data,$dataoffset, $callback->($retval) |
363 | Reads or writes $length bytes from or to the specified $fh and |
369 | Reads or writes $length bytes from or to the specified $fh and |
364 | $offset into the scalar given by $data and offset $dataoffset and |
370 | $offset into the scalar given by $data and offset $dataoffset and |
365 | calls the callback without the actual number of bytes read (or -1 on |
371 | calls the callback without the actual number of bytes read (or -1 on |
… | |
… | |
1529 | Calls the "munlockall" function. |
1535 | Calls the "munlockall" function. |
1530 | |
1536 | |
1531 | On systems that do not implement "munlockall", this function returns |
1537 | On systems that do not implement "munlockall", this function returns |
1532 | ENOSYS, otherwise the return value of "munlockall". |
1538 | ENOSYS, otherwise the return value of "munlockall". |
1533 | |
1539 | |
|
|
1540 | IO::AIO::splice $r_fh, $r_off, $w_fh, $w_off, $length, $flags |
|
|
1541 | Calls the GNU/Linux splice(2) syscall, if available. If $r_off or |
|
|
1542 | $w_off are "undef", then "NULL" is passed for these, otherwise they |
|
|
1543 | should be the file offset. |
|
|
1544 | |
|
|
1545 | The following symbol flag values are available: |
|
|
1546 | "IO::AIO::SPLICE_F_MOVE", "IO::AIO::SPLICE_F_NONBLOCK", |
|
|
1547 | "IO::AIO::SPLICE_F_MORE" and "IO::AIO::SPLICE_F_GIFT". |
|
|
1548 | |
|
|
1549 | See the splice(2) manpage for details. |
|
|
1550 | |
|
|
1551 | IO::AIO::tee $r_fh, $w_fh, $length, $flags |
|
|
1552 | Calls the GNU/Linux tee(2) syscall, see it's manpage and the |
|
|
1553 | description for "IO::AIO::splice" above for details. |
|
|
1554 | |
1534 | EVENT LOOP INTEGRATION |
1555 | EVENT LOOP INTEGRATION |
1535 | It is recommended to use AnyEvent::AIO to integrate IO::AIO |
1556 | It is recommended to use AnyEvent::AIO to integrate IO::AIO |
1536 | automatically into many event loops: |
1557 | automatically into many event loops: |
1537 | |
1558 | |
1538 | # AnyEvent integration (EV, Event, Glib, Tk, POE, urxvt, pureperl...) |
1559 | # AnyEvent integration (EV, Event, Glib, Tk, POE, urxvt, pureperl...) |