FAQ notes

Jeroen T. Vermeulen jtv at xs4all.nl
Fri Aug 25 02:01:00 PDT 2006


On Thu, August 24, 2006 22:12, Havoc Pennington wrote:

> It depends a little bit how you are making the call. If you're letting
> dbus block for you (e.g. send_with_reply_and_block()) then what will
> happen is that other messages arriving will be queued, but not
> dispatched. So from the application's perspective, there won't be any
> callbacks invoked while blocking. (Unless threads come into it, in which
> case one thread could block while another kept processing the queue.)

[Grabs head and wails melodramatically]

Ah yes, threads...  Guess I'd have to look into those as well.


> The tradeoff here is that by not dispatching calls while blocking,
> deadlocks are possible; this is the default for whenever dbus blocks,
> though, because deadlocks are pretty easy to debug (and fix by switching
> to some async calling convention for that method), relative to
> "uncontrolled reentrancy" ("any time you make a call any other call can
> be made as a side effect").

Makes sense.  Thanks for the explanations!


Jeroen




More information about the dbus mailing list