-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, 28 May 2007 at 20:22:21 +0100, Tony Houghton wrote:
> In <[EMAIL PROTECTED]>, you wrote:
> 
> > remove_signal_receiver() takes and releases a lock (which protects the
> > signal-match tree from concurrent modification when dbus-python is used
> > multi-threaded). I'll check other places where this lock is used -
> > there's probably some code path where it's not being released properly.
> 
> FWIW after I read this I thought perhaps it's a reentrancy problem,
> caused by the application trying to call remove_signal_receiver() from a
> signal receiver. So I made DevTray defer the calls with
> gobject.idle_add() but it still froze. So I was on the wrong track :-(.

No, it's a different sort of reentrancy problem - in a proxy that tracks
name-owner changes, remove_signal_receiver() can trigger a recursive call
to itself (internally, a match on NameOwnerChanged is removed too) which
attempts to re-take the lock.

I've sent a patch for review upstream; there should be a 0.81.1 in a day or
so.

        Simon
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFGWyVAWSc8zVUw7HYRAtBXAKC58CPnmGWVf6zsagkkCvHCJ7rEzgCg4Tel
J5ERm73xeAPYcfRjXkW0Ya4=
=PIYc
-----END PGP SIGNATURE-----


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to