[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xmlblaster-devel] MS c++ crash on shutdown fix



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.

Regards

Martin

>
>>Hi 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
>the current
>>namespace. 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
>to the size
>>of the lib.
>>
>>Regards
>>
>>Martin
>>
>>
>>