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

[xmlblaster-devel] Re: C++ fix and OmniORB support



Martin Johnson wrote:

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.

Hi Martin,

i have changed the declaration in the header and added the namespace again.
It compiles fine on Linux g++ 3.3 and Windows VC++ 7 (May 03)
Other platforms i have not yet tested (i'm just downloading the new Sun CC Sparc).


Further i have added omniORB 4.0.1 support to our xmlBlaster
C++ client library, it compiles with 'build.sh cpp' as the other Orbs.

regards

Marcel


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.

Your thoughts before I commit please.

Regards

Martin