Crashing in CORBA_ORB_run() - a.k.a ORBit2 in Evolution 2.4 troubles

Jules Colding <[email protected]>
Newsgroups gmane.comp.gnome.orbit.general
Message-ID <[email protected]>
Hi,

I am trying to instantiate an ORB in a shared library that I am
developing for Evolution 2.4 (a new Camel provider).

The problem is that Evolution is being killed when the g_assert() in
giop_main_run() is being executed:

g_assert (giop_thread_self () == giop_main_thread);

Is there any reason why the giop thread *must* be the main thread? I am
somewhat baffled as I have used a thread to initiate and run an ORB.
That ORB was declared/defined in the main thread though, but I can't see
why that should matter.


The details:

	A Camel provider is implemented as a shared library which is loaded by
Evolution when needed. The Camel provider then talks to the server
backend and provides server-specific implementations of standard virtual
methods.

I need an ORB in my implementation as my backend server talks CORBA. I
am therefore initiating an ORB with "orbit-io-thread" in the name to
force multi threading. I then attempts to bring it online with
CORBA_ORB_run(). CORBA_ORB_run() in turn calls giop_main_run() where the
assert is executed and subsequently causes the termination of Evolution.

Any insights will be very welcome.


Thanks a lot in advance,
  jules
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.