diff options
Diffstat (limited to 'devel/libarena/DESCR')
-rw-r--r-- | devel/libarena/DESCR | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/devel/libarena/DESCR b/devel/libarena/DESCR new file mode 100644 index 00000000000..4d5f9fab780 --- /dev/null +++ b/devel/libarena/DESCR @@ -0,0 +1,22 @@ +Libarena is a custom memory allocator interface and implementation. Four +allocators are provided: flat LIFO arena allocator, object pool allocator +and two malloc(3) wrappers: one which returns the pointers unadulterated +and one which obeys the requested, arbitrary alignment. These can be used +directly, or through their exported prototype interfaces. + +Libarena is meant to provide a baseline interface so allocator's can be +stacked, and to provide a simple and well defined interface for libraries +and applications without becoming mired in features or capabilities. It is +not meant to restrict or confine what custom allocators can actually +accomplish. For instance, the included pool and arena allocators include a +suite of string utilities which aren't available in the generic exportable +interface. Note that these string utilities are built upon a generic +interface (see util.h) which can take the prototypical allocation context, +so they are also available to any 3rd party compatible allocators. + +Surprisingly few malloc(3) library "replacements" or plug-in interfaces +support a context pointer argument. They're useless for many or most of +the tasks where the ability to specify an alternate malloc(3) could +actually be useful, e.g. poor man's RAII. For network daemons especially +this feature is useful; all allocations for a particular session can be +freed simply by closing the lowest-level allocator object. |