Fwd: Re: Race condition in send_with_reply_and_block()
simon.mcvittie at collabora.co.uk
Tue Jul 23 05:47:55 PDT 2013
On 22/07/13 20:35, rony wrote:
> A few years ago, studying the DBus specifications I have come to believe that libdbus is the
> official reference implementation, not GDBus
libdbus is the reference implementation. That means that if its
interpretation of the D-Bus Specification conflicts with (for instance)
GDBus' interpretation, libdbus is probably right; but that's all that
being a reference implementation implies. It does not mean it is the
fastest or highest-quality implementation, the easiest-to-develop-with
implementation, or the implementation that interacts best with other
system features (such as multi-threading or various main loops).
> I have been expecting
> that any errors the reference implementation has will be fixed over time.
Errors will only be fixed if someone fixes them. All of the D-Bus
maintainers primarily work on other things, and have a limited amount of
time we can spend on it - in an ideal world, we'd be able to devote a
lot of time to making libdbus perfect, but this is not an ideal world.
My assessment is that we could spend a massive amount of time on trying
to perfect multi-threading and still not get there, so I would prefer to
spend my D-Bus time fixing things that have a better "return on investment".
> libdbus does multithreading is not really comprehensible
Adding correct multi-threading to code that has not been designed for
multi-threading "from the ground up" is rarely comprehensible - this is
not unique to libdbus. :-)
> As long as GDBus is not the official reference implementation for DBus being available on all major
> operating systems (including Windows and MacOSX), I feel forced to stick to libdbus
Please do not feel forced to stick to libdbus. Being the *reference*
implementation does not mean that it is the *best* implementation.
More information about the dbus