Re: ActivationContext and shlib servers



Maciej Stachowiak wrote:

> Michael Meeks <michael ximian com> writes:
>
> > On 26 Jan 2001, Maciej Stachowiak wrote:
> > > 2.) OAF already supports automatic unloading of shlib servers, using
> > >   oaf_plugin_use and oaf_plugin_unuse. oaf_plugin_unuse was buggy
> > >   until recently and would reliably crash your app but I have just now
> > >   committed a fix.
> >
> >       If you had used the running context code in bonobo it would have
> > not crashed. People should not be doing manual reference tracking any more
> > it is a waste of time and is likely to be buggy.
>
> No, it's trivial. It's no harder to manage than exe factory reference
> tracking.

An automatic system is even more trivial for the user ;-)

> >       I don't like the model code. For a start, if this was done with a
> > generic factory it would be considerably simpler. Secondly it only works
> > in really simple situations. If the original object creates a sub object
> > that a reference is held on and then the original object goes out of scope
> > you get an erroneous unload and a fault.
>
> The canonical way of using GenericFactory with the object count and
> all doesn't solve this problem either AFAIK. The right thing to do is
> to up your object count or your plugin use count each time you create
> an object implemented by code in your shlib or your executable,
> regardless of whether it's created directly by the factory create
> function or shlib plugin create function, or otherwise.

Yes, this is what we are doing, although it only works for BonoboObjects.
We increment the object count for a shared library each time an object is
activated (regardless of whether it's created directly by the factory create
function or shlib plugin create function, or otherwise). To make this
work for all CORBA object you would have to modify ORBit.

I will try to adapt bonobo to take the shared library factory semantics
into account.

- Dietmar





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