]> mj.ucw.cz Git - libucw.git/blobdiff - lib/asio.h
Added a very brief introduction to ASIO.
[libucw.git] / lib / asio.h
index d17ee7ff5eef7bc62da3eb1aaba3ab2da7e233c6..6773c81fd1333d95a610381b509f9dd2ed7922ef 100644 (file)
 #include "lib/workqueue.h"
 #include "lib/clists.h"
 
-/* FIXME: Comment, especially on request ordering */
+/*
+ *  This module takes care of scheduling and executing asynchronous I/O requests
+ *  on files opened with O_DIRECT. It is primarily used by the fb-direct fastbuf
+ *  back-end, but you can use it explicitly, too.
+ *
+ *  You can define several I/O queues, each for use by a single thread. Requests
+ *  on a single queue are always processed in order of their submits, requests
+ *  from different queues may be interleaved (although the current implementation
+ *  does not do so). Normal read and write requests are returned to their queue
+ *  when they are completed. Write-back requests are automatically freed when
+ *  done, but the number of such requests in fly is limited in order to avoid
+ *  consuming all memory, so a submit of a write-back request can block.
+ */
 
 struct asio_queue {
   uns buffer_size;                     // How large buffers do we use [user-settable]