Extending Dbus Transport to allow use of mqueue

Andrew Sherk ASherk at qnx.com
Mon Jan 19 14:06:19 PST 2009


Dear all,

I am spending some time looking at the lower-level D-Bus API and the
transport layers.
My goal is to provide an alternative to unix domain sockets by using
mqueue, particularly an alternative version of mqueue (called mq) in
QNX, whose API (mq_open, mq_close, mq_receive, etc.) are POSIX.

Details:
http://www.qnx.com/developers/docs/6.4.0/neutrino/technotes/managing_mq_
mqueue.html

We're considering mq as it uses the QNX kernel's asynchronous messaging
facility to buffer messages within the kernel itself to eliminate
context-switching overhead.  

The Message Queue API is POSIX which should make it more attractive for
the implementation to hopefully be accepted into future releases of
D-Bus.

QNX's alternative Message Queue implementation however uses descriptors
that can't be passed to poll/select system calls.  It looks like I will
need to develop an alternative to the _dbus_poll function and create a
new DBusTransport table.

What does the D-Bus community think of the idea to offer a Message
Queues implementation of the underlying transport?  What is the best way
for me to approach this task? Start with DBusTransportVTable?

Thank you
Andrew Sherk




More information about the dbus mailing list