Re: oaf_plugin_unuse can't possibly work!



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.

> 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.

-- Elliot
DEAR IRS, Please cancel my subscription.






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