I inherited a bit of code that was polling using dbus_connection_read_write_dispatch.&nbsp; It worked fine, but it was polling.&nbsp; I decided to change that to an asynchronous model and looked at the DBusWatch/Timeout stuff but it looked like overkill for my needs.&nbsp; I continued looking and found dbus_connection_set_wakeup_main_function.&nbsp; From the comment: &quot;This function is responsible for waking up the main loop when some change has happened to the connection that the mainloop needs to reconsider&quot; it sounded perfect.&nbsp; Call me when I need to do stuff and I&#39;ll do stuff (non-polled used of read_write_dispatch).<br>
<br>It doesn&#39;t work.&nbsp; It kinda works.&nbsp; I get some incoming messages.&nbsp; Outgoing messages seem to go out.&nbsp; It just those few missed messages that spoil the whole thing.<br><br>I can go and implement the DBusWatch/Timeout interface, but I&#39;m curious: what purpose does dbus_connection_set_wakeup_main_function serve?&nbsp; How must it be suplimented to make a fully functional solution?&nbsp; If that&#39;s not possible, why does it remain in the API?<br>
<br>Thx<br>Robert<br>