On 2022-03-17 Jia Tan wrote:
> I attached two patches to this message. The first should fix a bug
> with the timeouts.

Thanks! This and the deadlock are now fixed (I committed them a few days
ago).

> The second patch is for the memlimit_threading update. I added a new
> API function that will fail for anything that is not the multithreaded
> decoder.

I need to consider this a little later. Some of the things I will do
next (some already have a patch on this list):

  - Add fail-fast flag to lzma_stream_decoder_mt().

  - Possibly fix a corner case in threaded coder if lzma_code() is
    called in a similar way as in zpipe.c in in
    <https://zlib.net/zlib_how.html>. That is, currently it doesn't
    work but it can be made to work, I think. Supporting it makes
    threaded decoder a little easier to adapt to existing apps if they
    use that kind of decoding loop.

  - --memlmit-threading, I wrote this weeks ago except a few details
    that need to be decided. For example, I guess -M should set
    --memlimit-threading just like it sets --memlimit-compress and
    --memlimit-decompress.

  - Initial version of automatic memlimit with --threads=0. First
    version can be based on lzma_physmem() but other methods can be
    added. Sebastian's patch uses MemAvailable on Linux, your patch
    uses freemem from sysinfo() which equals MemFree in /proc/meminfo.
    I suppose MemAvailable is a better starting point.

  - Support for forcing single/multi-threaded mode with --threads for
    cases when xz decides to use only one thread.

  - Fix changing memlimit after LZMA_MEMLIMIT_ERROR in the old
    single-threaded decoder. (I knew it's a rare use case but clearly
    it's not a use case at all since I haven't seen bug reports.)

  - Your test framework patches

I suppose then the next alpha release is close to ready.

-- 
Lasse Collin

Reply via email to