◆ allocator
The allocator is set by the main thread. Since a copy of the pointer is kept here, the application must not change the allocator before calling lzma_end().
◆ block_decoder
◆ block_options
Thread-specific Block options are needed because the Block decoder modifies the struct given to it at initialization.
◆ coder
Pointer to the main structure is needed to (1) lock the main mutex (coder->mutex) when updating outbuf->pos and (2) when putting this thread back to the stack of free threads.
◆ cond
◆ in
Input buffer that will contain the whole Block except Block Header.
◆ in_filled
Number of bytes written to "in" by the main thread.
◆ in_pos
Number of bytes consumed from "in" by the worker thread.
◆ in_size
Amount of memory allocated for "in".
◆ mem_filters
Filter chain memory usage.
◆ mutex
◆ next
Next structure in the stack of free worker threads.
◆ out_pos
Amount of uncompressed data that has been decoded. This local copy is needed because updating outbuf->pos requires locking the main mutex (coder->mutex).
◆ outbuf
Output queue buffer to which the uncompressed data is written.
◆ partial_update
Updating outbuf->pos requires locking the main mutex (coder->mutex). Since the main thread will only read output from the oldest outbuf in the queue, only the worker thread that is associated with the oldest outbuf needs to update its outbuf->pos. This avoids useless mutex contention that would happen if all worker threads were frequently locking the main mutex to update their outbuf->pos.
Only when partial_update is something else than PARTIAL_DISABLED, this worker thread will update outbuf->pos after each call to the Block decoder.
◆ progress_in
Amount of compressed data that has already been decompressed. This is updated from in_pos when our mutex is locked. This is size_t, not uint64_t, because per-thread progress is limited to sizes of allocated buffers.
◆ progress_out
Like progress_in but for uncompressed data.
◆ state
Worker state is protected with our mutex.
◆ thread_id
The ID of this thread is used to join the thread when it's not needed anymore.
The documentation for this struct was generated from the following files:
- C:/Pereira/Dua/source forge files my love/tar_dll/val/xcx_xz/xz-5.4.0/xz-5.4.0/src/liblzma/common/stream_decoder_mt.c
- C:/Pereira/Dua/source forge files my love/tar_dll/val/xcx_xz/xz-5.4.1/xz-5.4.1/src/liblzma/common/stream_decoder_mt.c
- C:/Pereira/Dua/source forge files my love/tar_dll/val/xcx_xz/xz-5.6.2/xz-5.6.2/src/liblzma/common/stream_decoder_mt.c