[PATCH] similar change to dbus_connection_unregister_object_path
Havoc Pennington
hp at redhat.com
Wed Oct 10 09:33:57 PDT 2007
Simon McVittie wrote:
> As per Thiago's comments, I suggest we loosen the API contract on
> dbus_connection_unregister_object_path too.
>
Hmm... unlike the try_register this one does have a downside: if you
have a typo in the name of the path you unregister, you'll be silently
doomed.
btw, the warning here (and for register) was just _dbus_warn, not
_dbus_warn_check_failed, so does not abort.
I'm trying to think about when it would be correct for a module to
unregister without knowing it was registered. Say two modules both
attempt to register a path. One of them fails. Then later they both
unregister. One of them could unregister the path, even though it had
failed to register. i.e. one could unregister the other's stuff.
It seems to me, then, that we have to say a correct module will use
try_register_object_path to be sure it registers successfully; and then
it will only unregister if it successfully registered.
So, a warning if it unregisters while not registered would be
appropriate, wouldn't it?
I'm struggling to think of an example of non-broken code that
unregisters without knowing whether it's registered. I think we need
that example to remove the warning, otherwise we're just removing a
helpful clue when someone is debugging their broken code.
Havoc
More information about the dbus
mailing list