Martin Johnson wrote:
Ok, otherwise just do a global search&replace to remove the namespace in demo/c++ and testsuite/src/c++Marcel
I have update cvs with changes to get c++ lib running again.
As part of this fix requires the removal of objman from org::xmlBlaster::util namespace the test suite will not compile.
The only effect is the init() fini() methods. maybe the class needs to be renamed for the purpose of reflecting xmlBlaster initiailization rather than object lifetime management. Though perhaps not, I have seen .net 2003 arrive today at work, perhaps the 7.1 compiler allows it to compile within the namespace as does gcc.
thanks,
Marcel
Regards
Martin
the currentHi Marcel, Michele,
I was able to reproduce the problem.
The troble with the crash on windows is the relationship existing between Global (now managed) and CorbaDriverFactory (not managed)
I change CorbaDriverFactory to a 'managed object' destructed prior to Global all is well.
The fact that this does not occur on Linux adds the the notion that static globals are not having the destructors called otherwise you would be seeing similar behaviour. Recall this being one of reasons in pursuing the object manager along with Global destruction hanging on MS. To implement I had to alter the way global is created. It is now pre-allocated to ensure it being the first object created as relationships dictate this.
These changes fix the crash.
Whilst looking into this I have found some more trouble.
MS compiler does not support template friends defined outside of
to the sizenamespace. To workaround this I had to remove Object_Lifetime_Manager from org::xmlBlaster::util namespace it is now global.
Another observation is removing from the namspace removed 4k from the size
of the lib.
The *extensive* use of namespaces appears to contribute somewhat
of the lib.
Regards
Martin