Re: orbit 1/2 interoperation - hmm
- From: Michael Meeks <michael ximian com>
- To: Maciej Stachowiak <mjs eazel com>
- Cc: Havoc Pennington <hp redhat com>, <orbit-list gnome org>, <gnome-components-list gnome org>
- Subject: Re: orbit 1/2 interoperation - hmm
- Date: Wed, 26 Sep 2001 21:45:44 -0400 (EDT)
Hi Maciej,
On Wed, 26 Sep 2001, Maciej Stachowiak wrote:
> I have been seeing a lot of problems with ORBit2. It seems very flaky.
> It needs some serious testing and debugging, IMO. But I am not the
> expert here.
I suspect you are not seeing ORBit2 problems; I imagine you
have some build problem or system issue. But please run the extensive
ORBit2 regression tests in ORBit2/tests: make check, I'd be interested
if any fail, or if you had suggestions for tests that are missing.
ORBit2 is a far higher quality ORB than ORBit stable, both
structuraly, in design terms, in code clarity and better still we can
prove its robustness with extensive regression tests :-)
> > Also: to get gconf1/gconf2 to coexist, I had to strip
> > bonobo-activation out of the loop. This means my own equivalent of
> > bonobo_activation_orb_get() and oaf_orb_get(). What happens if the
> > code in oaf_orb_get() is executed twice? Can two code segments
> > both do this?
The code in oaf_orb_get just returns a global variable, so
that's just fine - do it lots :-) what might hurt more is calling
oaf_orb_init twice which does a oaf_orb = CORBA_ORB_init (...);
In fact in ORBit-stable this does:
static CORBA_ORB orb=NULL;
...
if (orb)
return orb;
orb = ...;
And in ORBit2 it does:
static CORBA_ORB retval = NULL;
...
if (retval)
return (CORBA_ORB) CORBA_Object_duplicate (
(CORBA_Object) retval, ev);
retval = ...;
So - perhaps there is a ref counting bug on the ORB in ORBit
HEAD - either way that ref is not important.
> You will get two different ORBs.
In short - in the same process, you get the same orb.
Oh, and in other news - I'm fixing the locking in liboaf which
provides interesting syslog dumps like:
Sep 28 01:32:03 localhost lt-oaf-run-query: 27404: open lock '/tmp/orbit-michael/oaf-register.lock': 4
Sep 28 01:32:03 localhost lt-oaf-run-query: 27404: wait on lock
Sep 28 01:32:03 localhost lt-oaf-run-query: 27404: registration check 0x804deb0 non existant 0
Sep 28 01:32:03 localhost lt-oaf-run-query: 27404: start using activators
Sep 28 01:32:03 localhost lt-oaf-run-query: 27420: open lock '/tmp/orbit-michael/oaf-register.lock': 4
Sep 28 01:32:03 localhost lt-oaf-run-query: 27420: wait on lock
Sep 28 01:32:03 localhost lt-oaf-run-query: 27420: registration check 0x804deb0 non existant 0
Sep 28 01:32:03 localhost lt-oaf-run-query: 27420: start using activators
ie. no locking :-)
Anyhow, so go ahead - should work fine, init the ORB as much
as you like :-)
Regards,
Michael.
--
mmeeks gnu org <><, Pseudo Engineer, itinerant idiot
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]