chiark / gitweb /
Import buf from Catacomb; split out the dstr bits, and throw away the mp and
[mLib] / man / pool.3
index 1e806bf03739b5dd49df65536268ac68af4b0c76..28e801243292c54417fa38c49cefb2af4b8492b6 100644 (file)
@@ -16,6 +16,7 @@
 pool \- resource pool management
 .\" @pool_alloc
 .\" @pool_strdup
+.\" @pool_init
 .\" @pool_create
 .\" @pool_destroy
 .\" @pool_sub
@@ -28,6 +29,7 @@ pool \- resource pool management
 .nf
 .B "#include <mLib/pool.h>"
 
+.BI "void pool_init(pool *" p ", arena *" a );
 .BI "pool *pool_create(arena *" a );
 .BI "pool *pool_sub(pool *" p );
 .BI "void pool_destroy(pool *" p );
@@ -76,6 +78,11 @@ of avoiding memory leaks.
 A new root pool is created using
 .BR pool_create ,
 passing it an arena from which it can allocate large memory blocks.
+Alternatively, you can allocate a
+.B pool
+structure from somewhere and initialize it by passing its address and an
+arena to
+.BR pool_init .
 .PP
 A subpool is created by calling
 .BR pool_sub ,
@@ -83,10 +90,14 @@ naming the parent pool.
 .PP
 Pools are destroyed by passing them to
 .BR pool_destroy .
-Root pools are completely destroyed, since the memory containing the
-pool structure is allocated from the pool itself.  Subpools, on the
-other hand, are allocated from a parent pool, and may be reused after
-being `destroyed'.
+Pools created by
+.B pool_create
+are completely destroyed, since the memory containing the pool structure
+is allocated from the pool itself.  Subpools and pools allocated by the
+caller and initialized by
+.BR pool_init ,
+on the other hand, are
+allocated from a parent pool, and may be reused after being `destroyed'.
 .SS "Memory allocation"
 Memory is allocated from a pool by calling
 .BR pool_alloc ,
@@ -162,4 +173,4 @@ out; it's just not a disaster if you forget by accident.
 .BR mLib (3),
 .BR subarena (3).
 .SH AUTHOR
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>