diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2011-04-11 22:03:30 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2011-04-11 22:03:30 +0300 |
commit | de678e0c924aa79a19293a8a6ed82e8cb6572a42 (patch) | |
tree | 43c9ca50d190794bd3ed99430c63c3784afbe22f /src/liblzma/common/common.h | |
parent | liblzma: Add the forgotten lzma_lzma2_block_size(). (diff) | |
download | xz-de678e0c924aa79a19293a8a6ed82e8cb6572a42.tar.xz |
liblzma: Add lzma_stream_encoder_mt() for threaded compression.
This is the simplest method to do threading, which splits
the uncompressed data into blocks and compresses them
independently from each other. There's room for improvement
especially to reduce the memory usage, but nevertheless,
this is a good start.
Diffstat (limited to '')
-rw-r--r-- | src/liblzma/common/common.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h index b8194323..8e9a387c 100644 --- a/src/liblzma/common/common.h +++ b/src/liblzma/common/common.h @@ -49,6 +49,13 @@ #define LZMA_BUFFER_SIZE 4096 +/// Maximum number of worker threads within one multithreaded component. +/// The limit exists solely to make it simpler to prevent integer overflows +/// when allocating structures etc. This should be big enough for now... +/// the code won't scale anywhere close to this number anyway. +#define LZMA_THREADS_MAX 16384 + + /// Starting value for memory usage estimates. Instead of calculating size /// of _every_ structure and taking into account malloc() overhead etc., we /// add a base size to all memory usage estimates. It's not very accurate @@ -69,6 +76,13 @@ | LZMA_CONCATENATED ) +/// Special return value (lzma_ret) to indicate that a timeout was reached +/// and lzma_code() must not return LZMA_BUF_ERROR. This is converted to +/// LZMA_OK in lzma_code(). This is not in the lzma_ret enumeration because +/// there's no need to have it in the public API. +#define LZMA_TIMED_OUT 32 + + /// Type of encoder/decoder specific data; the actual structure is defined /// differently in different coders. typedef struct lzma_coder_s lzma_coder; |