Re: oaf_plugin_unuse can't possibly work!



Elliot Lee <sopwith@redhat.com> writes:

> On 1 Sep 2000, Maciej Stachowiak wrote:
> 
> > For each object produced by a shared library server, the server is
> > supposed to call oaf_plugin_unuse when the object is destroyed. This
> > keeps a hidden refcount for the shlib server. Once the refcount goes
> > to zero, the shlib is unloaded. However, once we return back from
> > oaf_plugin_unuse to the stack frame of the function that called it, we
> > get a SEGV because we return to code that just got unmapped.
> > 
> > Elliot, do you have some ingenious solution for this? Is this just
> > broken as designed?
> 
> It requires the ORBit_servant_set_deathwatch() function to be used, but
> that function is only present in binary-incompatible ORBit HEAD, which is
> not something we will ever want to tell people to use.

Well, not for GNOME 1.x
 
> > Maybe oaf_plugin_unuse should only schedule an unload in an idle
> > handler rather than doing it immediately
> 
> That was the broken solution used in libgnorba. It probably should be the
> Bad Hack to use in liboaf for now, because it does handle the most common
> cases.
> 

I will look at how gnorba does it, maybe we can switch back to the
better solution for GNOME 2 if ORBit HEAD is adopted for that.

 - Maciej






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