Blosc/c-blosc — pull request #66 by crspeller (2014-10-24 16:53:25+00:00)
Title: Serial blosc

This is an extensive set of changes I have been working on. It fixes a major issue we where having integrating blosc with OpenVDB and Houdini.

The issue we where running into is that blosc does not support multiple simultaneous users. By that I mean that if multiple users are calling into the blosc library from separate threads they both can not be processed at the same time. This is due to all the global variables protected by the global lock.

The solution we propose is to create a new API that works the way we need it to. The api is currently sblosc_compress and sblosc_decompress.

Benifits of solution:
- Current API is preserved so current users of the blosc library need not modify their implementations.
- New api will be easier for new users as there are only two functions needed for most of the work.
- Blosc_init and blosc_destroy are no longer needed.
- No more global used with the new API (old API still uses some globals, eventually these could be removed)
- Support for both blosc internal threading and multiple simultaneous users.