bus_name_has_owner in python
Tony Houghton
h at realh.co.uk
Sat Mar 17 14:59:16 PDT 2007
In <45FC1C27.3090203 at redhat.com>, Havoc Pennington wrote:
> 1) you should not use bus_name_has_owner() for this because you're
> creating a race condition. Instead, you need to write the code as follows:
> - try to request the name
> - if the request *fails* due to an existing owner, then exit
> - otherwise, you are the unique instance and can continue
> This guarantees that you either have the name or someone else does.
> Also, this way uses fewer round trips and is thus a bit faster.
Thanks. It definitely makes more sense to do it that way; I hadn't
thought about the race condition before or noticed how useful were the
return codes and flags for dbus_bus_request_name(). I've got a C program
that uses D-BUS too and when I originally wrote the code for that the
function was still called dbus_bus_acquire_service(). Did its API get
extended or the documentation for it get improved at some point?
--
TH * http://www.realh.co.uk
More information about the dbus
mailing list