
"Robert Ramey"
Anders Wang Kristensen wrote:
Thanks for taking time to answer this.
The situation you describe is exactly what I have and what is causing the assert. X is implemented in its own DLL including its serialize function, which is in the cpp file and explicitly instantized with the xml archive.
In A and B have their own DLLs and call X::serialize as part of their own serialization. Serializing one works, but both fails.
Are you saying this should work?
I'm saying I would expect that to work. If it doesn't I would be curious to learn more about the specific case.
I should say when I wrote the library, I didn't really consider the problem of code in DLLs being loaded/unloaded on the fly.
This can create a problem as we have a registry to keep track of pointers to certain code addresses. I have made some adjustments to address this in 1.35 - but really haven't set up a way to exhaustively test them.
The same can be said for making the serialization library truely threadsafe.
Robert Ramey
I've attached some files with a simple example that fails. They should be compiled as an executable and three DLLs. This simple example works fine with the assertion in extended_type_info.cpp line 76 removed, though I havent tested that on my "real" code yet.