liblzma: API comment about lzma_allocator with threaded coding.

This commit is contained in:
Lasse Collin 2011-04-11 19:26:27 +03:00
parent 5eefc0086d
commit a7934c446a
1 changed files with 13 additions and 5 deletions

View File

@ -332,11 +332,19 @@ typedef enum {
* malloc() and free(). C++ users should note that the custom memory * malloc() and free(). C++ users should note that the custom memory
* handling functions must not throw exceptions. * handling functions must not throw exceptions.
* *
* liblzma doesn't make an internal copy of lzma_allocator. Thus, it is * Single-threaded mode only: liblzma doesn't make an internal copy of
* OK to change these function pointers in the middle of the coding * lzma_allocator. Thus, it is OK to change these function pointers in
* process, but obviously it must be done carefully to make sure that the * the middle of the coding process, but obviously it must be done
* replacement `free' can deallocate memory allocated by the earlier * carefully to make sure that the replacement `free' can deallocate
* `alloc' function(s). * 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 { typedef struct {
/** /**