[gdal-dev] libecwj2 with multiple readers

Mateusz Loskot mateusz at loskot.net
Tue Jan 15 03:05:42 PST 2013


Hi,

Without getting into details, I wonder, has anyone ever used GDAL with
libecwj2 support to access ECW dataset(s) from multiple readers?

Apparently, libecwj2 manages some internal static environment which
can not be safely shared, unless all accesses to libecwj2 are serialised.
For example, in CNCSJP2FileViewVector class there is

static CNCSJP2FileViewVector sm_Views;

and the way it is used, may lead to subtle problems
and destruction fiasco related to multiple threads
managed by this static object.
Possible simple solution is to replace this static object
with one allocated from dynamic storage.
But, it seems it does not solve all possible. problems
and may fail if libecwj2 is accessed (through GDAL)
from multiple threads.
One leak of problem is crash during shutdown stages in libecwj2.

Does anyone know any piece of documentation where relevant
limitations and assumptions of libecwj2 are described,
either internal docs in GDAL or external resources.
Any related brainstorming would be greatly appreciated.

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net


More information about the gdal-dev mailing list