troy d. straszheim wrote:
Jens Weller wrote:
Have you tested this also on SVN Version?
Yeah, same errors. Though as I say it has turned out to be very hard to isolate.
Just to recap. a) when an eti (extended_type_info) is created an entry containing its address is added to a global registry. b) when an eti record is destroyed, all entries in the global registry which correspond to this same object (by matching address) are erased. c) The global registry consists of two collections. d) The problem is occuring when when the eti is being destroyed after the global registry is destroyed. This occurs when global static objects are not destroyed in reverse order that they are created. e) So I added a static boolean flag - is_destroyed to all singleton objects - including the global eti registry. This static flag is set by the destructor of the singleton. f) Any time an eti record is destroyed, it checks the "is_destroyed" flag of each global registry and skips the erase operation if the global registry has been destroyed. So - if this is not working for anyone, one of the following must be true: a) you don't have the lastest copy.(possible) b) the code is multi-threading and has a race condition after main() returns.(seems very unlikely to me) c) my implemenation is flawed(possible - but that's why you testers get the big bucks!) So - which is it? Robert Ramey