Bug #439
The exiv2 library should be re-entrant
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | Andreas Huggel | % Done: | 100% | |
Category: | design | |||
Target version: | 0.22 |
Description
Exiv2 is currently not re-entrant. I'm aware of the following problems, but maybe there are more:
+ It uses the old versions of some C/Posix functions instead of the *_r version.
+ Construction of the Image and Makernote factories accesses static variables without any protection
Associated revisions
#439: Added optional parameters to XmpParser::initialize() to work around thread-safety issues (Jonathan Potter, GP Software)
History
#1 Updated by Andreas Huggel over 10 years ago
AFAICS This is finally fixed with the removal of the complex Makernote registration logic.
#2 Updated by Andreas Huggel over 10 years ago
Exiv2::XmpParser::initialize and Exiv2::XmpProperties::registerNs are not thread-safe, see http://bugs.kde.org/show_bug.cgi?id=166424
#3 Updated by Andreas Huggel about 10 years ago
- Target version changed from 0.18 to 1.0
- % Done changed from 0 to 80
#4 Updated by Andreas Huggel almost 10 years ago
See also Thread safety in the Wiki.
#5 Updated by Gilles Caulier almost 10 years ago
Andreas Huggel wrote:
Exiv2 is currently not re-entrant. I'm aware of the following problems, but maybe there are more:
+ It uses the old versions of some C/Posix functions instead of the *_r version.
+ Construction of the Image and Makernote factories accesses static variables without any protection
And use d private internal classes to host privates members/methods, to improve bianry compatibility and clean up code... This is very important for a library.
Look here for details from KDE project :
http://techbase.kde.org/Policies/Library_Code_Policy#Shared_D-Pointers
Gilles Caulier
#6 Updated by Andreas Huggel over 7 years ago
- Status changed from Feedback to Resolved
- Target version changed from 1.0 to 0.22
- % Done changed from 80 to 100
#7 Updated by Andreas Huggel over 7 years ago
- Status changed from Resolved to Closed