Comment 14 for bug 1303649

Revision history for this message
James Hunt (jamesodhunt) wrote :

Right. So to be completely clear, by calling nih_dbus_setup(), nih was registering a libdbus handler that runs on the client side such that whenever libdbus deemed necessary, it would attempt to wake up the clients main loop by calling nih_main_loop_interrupt(). However, since the client didn't have an nih main loop, the interrupt pipe was never drained and eventually filled leading to the EAGAIN tight loop.

Yes, I agree - maybe it should have been called nih_dbus_main_loop_setup() to make its usage clearer.