Synchronous calls to the same mainloop

Thiago Macieira thiago at kde.org
Fri Nov 10 11:40:53 PST 2006


keith preston wrote:
>I guess I don't see a good use case of Process A synchronously calls
> Process B who in the middle of the call synchronously calls Process A. 

Unfortunately, this is a very common programming practice in KDE. DCOP had 
protection against this kind of "deadlock".

It's worse when process A calls process B, which calls process C which in 
turn calls process A. This also happened in KDE and was also protected in 
DCOP.

Both protections are now dropped in D-Bus. We considered that adding this 
kind of deadlock prevention only solved simple cases. Anything more 
complex still went by undetected during development and ended up showing 
up after release. So, by not trying to detect these deadlocks (simply 
blocking the entire application(s) if it happens) should make it easier 
for the programmer to see the issue and fix it before release.

> I'm really not focused on solving all
> synchronous blocking problems because that seems generally impossible,
> just the case of a Process wanting to use DBus to Synchronously call
> itself.

QtDBus already does this by providing option #1 from your original email. 
I am not certain it would be more efficient to have it in libdbus, 
performance-wise. But at least for completeness, I agree it should.

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/dbus/attachments/20061110/4c8b59e3/attachment.pgp


More information about the dbus mailing list