libdbus or gio dbus for multi-threaded service ?

"Daniel P. Berrange" <dan-TA1HlLrDhUVWk0Htik3J/[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <[email protected]>
The libvirt project is working on providing a DBus interface proxying to
the libvirt API. Due to the design of the libvirt as a synchronous,
blocking API, the DBus service impl is going to be forced to be multi-
threaded in executing object calls. The initial proof of concept used 
systemd's  sd-dbus library, but that isn't thread safe, so we're 
considering replacing it with either libdbus or GLib's GIO dbus APIs.

Obviously the GIO api provides a higher level abstraction to using DBus
than libdbus does, so that's appealing on its own, but we're particularly
wanting to understand any caveats around multi-thread support/safety with
these options.

Historically since I recall lots of pain around thread safety of libdbus,
but bugzilla [1] suggests much (all ?) of this has been addressed. Though
that bug is still left open, so I wonder what's still unsafe ? Can anyone
clarify this, and any caveats to be aware of in this area. Also what is 
the minimum version of libdbus one should consider if using threads ?

For GIO DBus[2] I'm not finding clear docs about usage with threaded object 
dispatch. Presumably, the implication is that all the DBus protocol I/O 
will still take place via the main event thread, and something like GTask 
would have to be used to execute object dispatch asynchronously by spawning
threads on demand for operations with long execution time.

If anyone has any comments on threaded usage of GIO dbus, or general 
thoughts about the merits of the 2 options we'd appreciate it.

Regards,
Daniel

[1] https://bugs.freedesktop.org/show_bug.cgi?id=54972

[2] https://developer.gnome.org/gio/stable/gdbus-convenience.html
--
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

_______________________________________________
dbus mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.