Skip to content
Commit 134d5731 authored by Gilles Caulier's avatar Gilles Caulier 🗼
Browse files

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
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment