Re: [g-a-devel]Re: Gail Range strangeness ...



Hi Bill,

On Mon, 2002-01-07 at 12:51, Bill Haneman wrote:
> mmm, the notifications are oneways already, is that not good enough?

	The ref/unrefs are not though - that is where the reenterancy happens -
on every source we ref / unref a fair bit - we could try and reduce this
I suppose by special casing the first notify - hmm. perhaps we should
add that to the TODO as well; be more cunning with ref/unrefs especially
where we effectively do:

	ref ()
	notify_one_listener ()
	unref ();

	it seems somewhat daft.

> I am frankly surprised that we should see much reentrancy here, do you
> understand the triggering conditions yet?  I would only expect
> reentrancy if an event notification caused a subsequent change in the
> listener lists, which I think is quite uncommon... perhaps I missing
> some really common case here?

	Well - there is that - it's not particularly harmful; but there are
some super deep stack frames there. Run the registryd in the debugger
and run test-simple, put a break point in Bonobo_Unknown_unref and see
what I mean :-) ~ 200+ stack frames later ...

> I'm not convinced that we should put this in cspi since cspi will never
> be called from multiple threads in the same process space, nor will cspi
> data be shared between processes... so I don't see the need.

	It's quite valid to remove a cspi listener in a cspi notification list
traversal (via the notify) - so we do need this code used inside cspi.
It's best to leave it in libspi/ IMHO and expose it as an at-spi impl.
private - as suggested.

	Regards,

		Michael.

-- 
 mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot




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