Project

General

Profile

Bug #439

The exiv2 library should be re-entrant

Added by Andreas Huggel almost 14 years ago. Updated almost 8 years ago.

Status:
Closed
Priority:
Normal
Category:
design
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:

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

Revision 2538 (diff)
Added by Andreas Huggel about 8 years ago

#439: Added optional parameters to XmpParser::initialize() to work around thread-safety issues (Jonathan Potter, GP Software)

History

#1

Updated by Andreas Huggel about 11 years ago

AFAICS This is finally fixed with the removal of the complex Makernote registration logic.

#2

Updated by Andreas Huggel about 11 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 over 10 years ago

  • Target version changed from 0.18 to 1.0
  • % Done changed from 0 to 80
#4

Updated by Andreas Huggel about 10 years ago

See also Thread safety in the Wiki.

#5

Updated by Gilles Caulier about 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 about 8 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 almost 8 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF