diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2011-04-11 19:26:27 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2011-04-11 19:26:27 +0300 |
commit | a7934c446a58e20268689899d2a39f50e571f251 (patch) | |
tree | 03eece5c4d85a18dcb974e04be07ef50b177fa39 /src | |
parent | liblzma: Add an internal function lzma_mt_block_size(). (diff) | |
download | xz-a7934c446a58e20268689899d2a39f50e571f251.tar.xz |
liblzma: API comment about lzma_allocator with threaded coding.
Diffstat (limited to '')
-rw-r--r-- | src/liblzma/api/lzma/base.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/liblzma/api/lzma/base.h b/src/liblzma/api/lzma/base.h index 43dde8d6..0bad7bc1 100644 --- a/src/liblzma/api/lzma/base.h +++ b/src/liblzma/api/lzma/base.h @@ -332,11 +332,19 @@ typedef enum { * malloc() and free(). C++ users should note that the custom memory * handling functions must not throw exceptions. * - * liblzma doesn't make an internal copy of lzma_allocator. Thus, it is - * OK to change these function pointers in the middle of the coding - * process, but obviously it must be done carefully to make sure that the - * replacement `free' can deallocate memory allocated by the earlier - * `alloc' function(s). + * Single-threaded mode only: liblzma doesn't make an internal copy of + * lzma_allocator. Thus, it is OK to change these function pointers in + * the middle of the coding process, but obviously it must be done + * carefully to make sure that the replacement `free' can deallocate + * memory allocated by the earlier `alloc' function(s). + * + * Multithreaded mode: liblzma might internally store pointers to the + * lzma_allocator given via the lzma_stream structure. The application + * must not change the allocator pointer in lzma_stream or the contents + * of the pointed lzma_allocator structure until lzma_end() has been used + * to free the memory associated with that lzma_stream. The allocation + * functions might be called simultaneously from multiple threads, and + * thus they must be thread safe. */ typedef struct { /** |