[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#9581: 24.0.50; dbus-unregister-object fails if service is nil
From: |
Michael Albinus |
Subject: |
bug#9581: 24.0.50; dbus-unregister-object fails if service is nil |
Date: |
Fri, 23 Sep 2011 17:37:31 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
Julien Danjou <julien@danjou.info> writes:
> When using `dbus-register-signal', this happens:
> 1. the dbus_bus_add_match() function is called to add a match on the bus
> 2. the (match callback) pair is recorded into
> `dbus-registered-objets-table'
>
> This makes things work. When a signal happens, something is looking into
> `dbus-registered-objets-table' and call the callback function.
>
> But to stop listening for a signal, the function to use is
> `dbus-unregister-object', and it is doing this:
> 1. remove the (match callback) pair from `dbus-registered-objets-table'
> 2. call ReleaseName on the service we were listening
>
> While I agree on point 1., the point 2. is totally irrelevant in such a
> case. There's no need to do such a thing, the name has never been
> requested with RequestName before.
It's simply an error. We are speaking abut the generalized
`dbus-unregister-object', which is used for both signals and
methods. ReleaseName shall be called only in case a *method* has been
registered; I'll fix this.
> I think that:
> - step 2 should be removed or another function should be created which
> does not send a ReleaseName
Nope. See above.
> - dbus_bus_remove_match() should be used to remove the watch from the
> bus, which would be a lot cleaner.
Good point. Registering a signal shall also keep the match string in
dbus-registered-objects-table (it doesn't yet). Then we could use this
string to send RemoveMatch.
I'll prepare a patch for this (hopefully in time before starting the
pretest).
Best regards, Michael.
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Julien Danjou, 2011/09/22
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil,
Michael Albinus <=
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Julien Danjou, 2011/09/23
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Michael Albinus, 2011/09/24
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Julien Danjou, 2011/09/24
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Michael Albinus, 2011/09/24
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Julien Danjou, 2011/09/25
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Michael Albinus, 2011/09/25
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Julien Danjou, 2011/09/25
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Michael Albinus, 2011/09/25
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Julien Danjou, 2011/09/26
- bug#9581: 24.0.50; dbus-unregister-object fails if service is nil, Michael Albinus, 2011/09/26