… | |
… | |
233 | |
233 | |
234 | The C<void *data> member simply stores the value of the C<data> argument. |
234 | The C<void *data> member simply stores the value of the C<data> argument. |
235 | |
235 | |
236 | =back |
236 | =back |
237 | |
237 | |
238 | Memmbers not explicitly described as accessible must not be |
238 | Members not explicitly described as accessible must not be |
239 | accessed. Specifically, there is no gurantee that any members will still |
239 | accessed. Specifically, there is no guarantee that any members will still |
240 | have the value they had when the request was submitted. |
240 | have the value they had when the request was submitted. |
241 | |
241 | |
242 | The return value of the callback is normally C<0>, which tells libeio to |
242 | The return value of the callback is normally C<0>, which tells libeio to |
243 | continue normally. If a callback returns a nonzero value, libeio will |
243 | continue normally. If a callback returns a nonzero value, libeio will |
244 | stop processing results (in C<eio_poll>) and will return the value to its |
244 | stop processing results (in C<eio_poll>) and will return the value to its |
… | |
… | |
764 | request finish on its own. |
764 | request finish on its own. |
765 | |
765 | |
766 | =item 3) open callback adds more requests |
766 | =item 3) open callback adds more requests |
767 | |
767 | |
768 | In the open callback, if the open was not successful, copy C<< |
768 | In the open callback, if the open was not successful, copy C<< |
769 | req->errorno >> to C<< grp->errorno >> and set C<< grp->errorno >> to |
769 | req->errorno >> to C<< grp->errorno >> and set C<< grp->result >> to |
770 | C<-1> to signal an error. |
770 | C<-1> to signal an error. |
771 | |
771 | |
772 | Otherwise, malloc some memory or so and issue a read request, adding the |
772 | Otherwise, malloc some memory or so and issue a read request, adding the |
773 | read request to the group. |
773 | read request to the group. |
774 | |
774 | |
775 | =item 4) continue issuing requests till finished |
775 | =item 4) continue issuing requests till finished |
776 | |
776 | |
777 | In the real callback, check for errors and possibly continue with |
777 | In the read callback, check for errors and possibly continue with |
778 | C<eio_close> or any other eio request in the same way. |
778 | C<eio_close> or any other eio request in the same way. |
779 | |
779 | |
780 | As soon as no new requests are added the group request will finish. Make |
780 | As soon as no new requests are added, the group request will finish. Make |
781 | sure you I<always> set C<< grp->result >> to some sensible value. |
781 | sure 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 |