2010.06.17 15:39 "[Tiff] libtiff 4 API/ABI stability?", by Adam Goode

2010.06.17 18:47 "Re: [Tiff] libtiff 4 API/ABI stability?", by Bob Friesenhahn

Yeah, it will work ok in 99% of cases. It won't work if one library needs to register a codec that changes the behavior of another library, for example. Not so much an issue if you're using libtiff from an application, but it is if you're writing a library that uses libtiff.

In this case you would need to have an 'application' handle which contains all application specific references, where a single "program" could have multiple handles. Multiple users of libtiff in a single application becomes more common as applications become huge and use many other libraries (some apps seem to use over 70 libraries now).

I have seen very good success from using thread specific data (TSD), which is supported under POSIX and Microsoft Windows, and is easily emulated in a non-threaded build. TSD can be much more efficient than using shared data with locking if the algorithm can get by with different data per thread. There are also TSD compiler extensions for GCC and MSVC but I would not want to use something non-portable like that.

Regardless, only minor API changes/improvements should be expected from 4.0.

Bob
--
Bob Friesenhahn
bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/