summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2011-06-29 10:32:55 +0000
committerroot <root>2011-06-29 10:32:55 +0000
commit972afe425e3ea86a60b42ec1eda9e1bd2948b18f (patch)
treedb4f070faf1b77a8a3471c2d152259ca8e11a607
parent7dc90eafe7ae0cc5ab67b58ef86b2fbd9b64f5d3 (diff)
*** empty log message ***rel-3_92
-rw-r--r--Changes2
-rw-r--r--eio.c2
-rw-r--r--eio.pod27
3 files changed, 29 insertions, 2 deletions
diff --git a/Changes b/Changes
index bde7245..df451d9 100644
--- a/Changes
+++ b/Changes
@@ -48,3 +48,5 @@ TODO: fadvise request
where sendfile would not transfer all the requested bytes on
large transfers, using a heuristic.
- use libecb, and apply lots of minor space optimisations.
+ - disable sendfile on darwin, broken as everything else.
+
diff --git a/eio.c b/eio.c
index 2ee77c7..7330a7f 100644
--- a/eio.c
+++ b/eio.c
@@ -1008,7 +1008,7 @@ eio__sendfile (int ofd, int ifd, off_t offset, size_t count, etp_worker *self)
if (sbytes)
res = sbytes;
-# elif defined (__APPLE__)
+# elif defined (__APPLE__) && 0 /* broken, as everything on os x */
off_t sbytes = count;
res = sendfile (ifd, ofd, offset, &sbytes, 0, 0);
diff --git a/eio.pod b/eio.pod
index c55f1e8..d14df1c 100644
--- a/eio.pod
+++ b/eio.pod
@@ -155,7 +155,10 @@ You submit a request by calling the relevant C<eio_TYPE> function with the
required parameters, a callback of type C<int (*eio_cb)(eio_req *req)>
(called C<eio_cb> below) and a freely usable C<void *data> argument.
-The return value will either be 0
+The return value will either be 0, in case something went really wrong
+(which can basically only happen on very fatal errors, such as C<malloc>
+returning 0, which is rather unlikely), or a pointer to the newly-created
+and submitted C<eio_req *>.
The callback will be called with an C<eio_req *> which contains the
results of the request. The members you can access inside that structure
@@ -570,6 +573,28 @@ not really of much use.
=head3 GROUPING AND LIMITING REQUESTS
+There is one more rather special request, C<eio_grp>. It is a very special
+aio request: Instead of doing something, it is a container for other eio
+requests.
+
+There are two primary use cases for this: a) bundle many requests into a
+single, composite, request with a definite callback and the ability to
+cancel the whole request with its subrequests and b) limiting the number
+of "active" requests.
+
+Further below you will find more dicussion of these topics - first follows
+the reference section detailing the request generator and other methods.
+
+=over 4
+
+=item eio_grp (eio_cb cb, void *data)
+
+Creates and submits a group request.
+
+=back
+
+
+
#TODO
/*****************************************************************************/