From 9c255313e62699427b51fbc43b1b0ac6349363c0 Mon Sep 17 00:00:00 2001
From: Mattias Andrée <maandree@operamail.com>
Date: Sat, 5 Sep 2015 02:16:24 +0200
Subject: doc libmds_mpool
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Mattias Andrée <maandree@operamail.com>
---
 doc/info/mds.texinfo | 53 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 49 insertions(+), 4 deletions(-)

(limited to 'doc')

diff --git a/doc/info/mds.texinfo b/doc/info/mds.texinfo
index 8bbfd04..1ba62c4 100644
--- a/doc/info/mds.texinfo
+++ b/doc/info/mds.texinfo
@@ -9773,10 +9773,12 @@ message spool.
 
 @item @code{libmds_mspool_spool} [(@code{this, libmds_message_t* restrict message}) @arrow{} @code{int}]
 @fnindex @code{libmds_mspool_spool}
-Spool a message. Upon successful completion,
-zero is returned. On error, @code{-1} is
-returned and @code{errno} is set to describe
-the error.
+Spool a message. The message must have been
+returned from @code{libmds_message_duplicate}.
+
+Upon successful completion, zero is returned.
+On error, @code{-1} is returned and @code{errno}
+is set to describe the error.
 
 This function may fail with @code{errno} set
 to @code{ENOMEM} if the process cannot allocate
@@ -9821,6 +9823,49 @@ equal to or greater than a milliard.
 time measured with the @code{CLOCK_REALTIME} clock.
 @end table
 
+@tpindex @code{libmds_mpool_t}
+@tpindex @code{struct libmds_mpool}
+@code{libmds_mpool_t} have four associated
+functions. The parameters @code{this} have
+the type @code{libmds_mpool_t* restrict}.
+
+@table @asis
+@item @code{libmds_mpool_initialise} [(@code{this, size_t size}) @arrow{} @code{int}]
+Initialise a pool of reusable message allocations.
+The pool will be able to hold @code{size} allocations.
+
+Upon successful completion, zero is returned.
+On error, @code{-1} is returned and @code{errno}
+is set to describe the error.
+
+This function may fail with @code{errno} set
+to @code{ENOMEM} if the process cannot allocate
+enough memory.
+
+@item @code{libmds_mpool_destroy} [(@code{this}) @arrow{} @code{void}]
+Release all resources stored in a
+message allocation pool.
+
+@item @code{libmds_mpool_offer} [(@code{this, libmds_message_t* restrict message}) @arrow{} @code{int}]
+Adds a message allocation to a pool. The message
+must have been returned from @code{libmds_message_duplicate},
+@code{libmds_mspool_poll} or @code{libmds_mspool_poll_try}.
+If the pool is full, the function will free the
+allocation, and return with a success status.
+
+Upon successful completion, zero is returned.
+On error @code{-1} is returned and @code{errno}
+is set to describe the error.
+
+@item @code{libmds_mpool_poll} [(@code{this}) @arrow{} @code{libmds_message_t*}]
+Fetches a message allocation from a pool.
+If the pool is empty, @code{NULL} is returned
+and @code{errno} is set to zero. On error
+@code{NULL} is returned and @code{errno} is set
+describe teh error, the value of @code{errno}
+will not be zero in this case.
+@end table
+
 
 
 @node libmdslltk
-- 
cgit v1.2.3-70-g09d2