I made a quick attempt to find the
source code of libxml++ in Red Hat Enterprise Linux Server release
6.1, but I failed.
The segfaults from SaxParser occurred in a std::map. When you said that you didn't find any map in the source code, did you look in libxml++/parsers/parser.cc, or did you look only in the header files? If parser.cc contains std::map<const xmlpp::Parser*, ExtraParserData> extra_parser_data; but does not contain Glib::Threads::Mutex extra_parser_data_mutex; then you've got a version of libxml++ where SaxParser is not thread-safe. If you haven't got the complete source code of libxml++, there is one other thing you can do, provided you haven't updated libxml++ since you got the segfaults almost half a year ago: Check which version of libxml++ you are using: pkg-config --modversion libxml++-2.6 If it's 2.35.1, 2.35.2, or 2.35.3, you've got a version with a known bug which makes it thread-unsafe. The bug has been fixed in later versions. https://bugzilla.gnome.org/show_bug.cgi?id=681467 I'm not really sure this is a foolproof way to check which version of libxml++ you've got. I don't know if Red Hat make their own fixes before they release it as part of their Linux distribution. Kjell 2013-04-06 15:52, Aleksei Artemiev skrev: Hi, Kjell, |