Even though they happen to intersect at the same spot - There are two separate issues. a) The need for a thread-safe singleton b) the properway to handle multiple registrations for dynamically loaded code. I thought I addressed the second. (Now you've made me doubt that). The first is still an open issue. Robert Ramey Sergey Skorniakov wrote:
Thanks for your quick response. Could you point me to the files that have been changed to address the issues?
You'll have to browse the CVS - look into extended type info
I am looking at:
http://boost.cvs.sourceforge.net/boost/boost/libs/serialization/src/extended_type_info.cpp?r1=1.11&r2=1.12 which I assume is the change you are suggesting.
I have tried this variant and it doesn't work with multiple-registred classes (from diferent DLLs) even in single-threaded environment. multiset is not enough because comparison of different instances of extended_type_info of the same double-registred class still returns false. I have changed my local copy of serialization library to properly handle multiregistration, however my solution is not threadsafe in general - it just works in one particular case. If someone interested in it, I can send the patch against 1.34 version.