Boost logo

Boost :

From: Jeff Bonyun (jeff_at_[hidden])
Date: 2019-05-22 15:47:10


I've implemented a multithreaded update to iostreams' lzma filter for my
own purposes, and I was wondering if this change would be considered for
including in Boost.iostreams?

It uses liblzma's own multithreaded functions, so the changes to boost
are actually pretty minimal. It does add a new member to the
boost-provided lzma options struct -- to specify your desired number of
threads -- which changes how people might use the constructor for the
filter.

My two biggest concerns with including it in Boost.iostreams are:
 Â  - Making the filter constructor backwards compatible. Right now,
users can initialize the options struct with a single unbraced int when
calling the filter constructor. With the change to the struct, I want to
make sure this old way still works. I.e. not requiring a braced
initializer list if you only want to provide the compression level.
 Â  - Handling older versions of liblzma that didn't offer
multithreading. I'll work on identifying the exact versions needed, and
branching on their #defined version numbers.

If there is appetite for it, I can make a pull request on github.

As this would be my first submission to boost, I'm sure I'll screw
something up and need correcting, so be patient.

Jeff


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk