DMetadata : First stage to consolidate Exiv2 multi-threading support.
These changes are very important as it introduce a mutex to protect all Exiv2 API calls which are not re-entrant, as unit-tests revelate quickly on a i7 8 cores CPU while scanning an huge collection of photo (jpg, tif, png, raw, video, etc...). The stressing test give a catastrophic unstability result with Exiv2 0.26 and new 0.27 RC1. This patch increase a lots the stability and now, crash are not reproducible, but of course, performances to read and write metadata from files are lesser than before. We need stability instead huge performance. Only MetaEngine implementation need to include the mutex protections for Exiv2, as all Exiv2 calls are located here, in private implementation. The rest of digiKam core still the same. This commit add also a missing C++ exception handling in MetaEngine::Previews class which can explain the crashes with preview extraction while Faces Management.
parent
a565aa98
Please register or sign in to comment