ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libeio/eio.pod
(Generate patch)

Comparing libeio/eio.pod (file contents):
Revision 1.28 by root, Mon Sep 26 16:54:25 2011 UTC vs.
Revision 1.32 by root, Sat Jan 19 00:02:34 2013 UTC

233 233
234The C<void *data> member simply stores the value of the C<data> argument. 234The C<void *data> member simply stores the value of the C<data> argument.
235 235
236=back 236=back
237 237
238Memmbers not explicitly described as accessible must not be 238Members not explicitly described as accessible must not be
239accessed. Specifically, there is no gurantee that any members will still 239accessed. Specifically, there is no guarantee that any members will still
240have the value they had when the request was submitted. 240have the value they had when the request was submitted.
241 241
242The return value of the callback is normally C<0>, which tells libeio to 242The return value of the callback is normally C<0>, which tells libeio to
243continue normally. If a callback returns a nonzero value, libeio will 243continue normally. If a callback returns a nonzero value, libeio will
244stop processing results (in C<eio_poll>) and will return the value to its 244stop processing results (in C<eio_poll>) and will return the value to its
630 630
631=over 4 631=over 4
632 632
633=item eio_mtouch (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data) 633=item eio_mtouch (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data)
634 634
635Reads (C<flags == 0>) or modifies (C<flags == EIO_MT_MODIFY) the given 635Reads (C<flags == 0>) or modifies (C<flags == EIO_MT_MODIFY>) the given
636memory area, page-wise, that is, it reads (or reads and writes back) the 636memory area, page-wise, that is, it reads (or reads and writes back) the
637first octet of every page that spans the memory area. 637first octet of every page that spans the memory area.
638 638
639This can be used to page in some mmapped file, or dirty some pages. Note 639This can be used to page in some mmapped file, or dirty some pages. Note
640that dirtying is an unlocked read-write access, so races can ensue when 640that dirtying is an unlocked read-write access, so races can ensue when
764request finish on its own. 764request finish on its own.
765 765
766=item 3) open callback adds more requests 766=item 3) open callback adds more requests
767 767
768In the open callback, if the open was not successful, copy C<< 768In the open callback, if the open was not successful, copy C<<
769req->errorno >> to C<< grp->errorno >> and set C<< grp->errorno >> to 769req->errorno >> to C<< grp->errorno >> and set C<< grp->result >> to
770C<-1> to signal an error. 770C<-1> to signal an error.
771 771
772Otherwise, malloc some memory or so and issue a read request, adding the 772Otherwise, malloc some memory or so and issue a read request, adding the
773read request to the group. 773read request to the group.
774 774
775=item 4) continue issuing requests till finished 775=item 4) continue issuing requests till finished
776 776
777In the real callback, check for errors and possibly continue with 777In the read callback, check for errors and possibly continue with
778C<eio_close> or any other eio request in the same way. 778C<eio_close> or any other eio request in the same way.
779 779
780As soon as no new requests are added the group request will finish. Make 780As soon as no new requests are added, the group request will finish. Make
781sure you I<always> set C<< grp->result >> to some sensible value. 781sure you I<always> set C<< grp->result >> to some sensible value.
782 782
783=back 783=back
784 784
785=head4 REQUEST LIMITING 785=head4 REQUEST LIMITING
926This symbol governs the stack size for each eio thread. Libeio itself 926This symbol governs the stack size for each eio thread. Libeio itself
927was written to use very little stackspace, but when using C<EIO_CUSTOM> 927was written to use very little stackspace, but when using C<EIO_CUSTOM>
928requests, you might want to increase this. 928requests, you might want to increase this.
929 929
930If this symbol is undefined (the default) then libeio will use its default 930If this symbol is undefined (the default) then libeio will use its default
931stack size (C<sizeof (void *) * 4096> currently). If it is defined, but 931stack size (C<sizeof (void *) * 4096> currently). In all other cases, the
932C<0>, then the default operating system stack size will be used. In all
933other cases, the value must be an expression that evaluates to the desired 932value must be an expression that evaluates to the desired stack size.
934stack size.
935 933
936=back 934=back
937 935
938 936
939=head1 PORTABILITY REQUIREMENTS 937=head1 PORTABILITY REQUIREMENTS

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines