summaryrefslogtreecommitdiff
path: root/eio.pod
diff options
context:
space:
mode:
authorroot <root>2011-06-05 23:07:46 +0000
committerroot <root>2011-06-05 23:07:46 +0000
commitbba9f2a92d34bfed385bccfdd9780cdb0b532072 (patch)
tree9723b00e04b76242930046670beef054d9096a11 /eio.pod
parent562389953303997321d4f4517a27535ed3828c6e (diff)
*** empty log message ***
Diffstat (limited to 'eio.pod')
-rw-r--r--eio.pod16
1 files changed, 12 insertions, 4 deletions
diff --git a/eio.pod b/eio.pod
index 2f8c526..e15539a 100644
--- a/eio.pod
+++ b/eio.pod
@@ -490,9 +490,17 @@ These requests are specific to libeio and do not correspond to any OS call.
=over 4
-=item eio_mtouch (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data)
+=item eio_mtouch (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data)
-=item eio_custom (void (*)(eio_req *) execute, int pri, eio_cb cb, void *data)
+Reads (C<flags == 0>) or modifies (C<flags == EIO_MT_MODIFY) the given
+memory area, page-wise, that is, it reads (or reads and writes back) the
+first octet of every page that spans the memory area.
+
+This can be used to page in some mmapped file, or dirty some pages. Note
+that dirtying is an unlocked read-write access, so races can ensue when
+the some other thread modifies the data stored in that memory area.
+
+=item eio_custom (void (*)(eio_req *) execute, int pri, eio_cb cb, void *data)
Executes a custom request, i.e., a user-specified callback.
@@ -522,7 +530,7 @@ API.
eio_custom (my_open, 0, my_open_done, "/etc/passwd");
-=item eio_busy (eio_tstamp delay, int pri, eio_cb cb, void *data)
+=item eio_busy (eio_tstamp delay, int pri, eio_cb cb, void *data)
This is a a request that takes C<delay> seconds to execute, but otherwise
does nothing - it simply puts one of the worker threads to sleep for this
@@ -531,7 +539,7 @@ long.
This request can be used to artificially increase load, e.g. for debugging
or benchmarking reasons.
-=item eio_nop (int pri, eio_cb cb, void *data)
+=item eio_nop (int pri, eio_cb cb, void *data)
This request does nothing, except go through the whole request cycle. This
can be used to measure latency or in some cases to simplify code, but is