Wierd interaction between calls to the bus and subsiqent Pending Calls

Kevin Krammer kevin.krammer at gmx.at
Sat Dec 17 07:03:03 PST 2005


On Friday 16 December 2005 22:35, Havoc Pennington wrote:
> On Fri, 2005-12-16 at 16:15 -0500, John (J5) Palmieri wrote:
> > > If you mean that a blocking call after a pending call makes the pending
> > > delays the pending result for a very long time, then I have seen this
> > > as well.
> > >
> > > If the pending result is received while the blocking call is waiting
> > > for its result, the pending result is correctly received but not
> > > dispatched. A call to dispatch after the blocking call (or a blocking
> > > call sequence) is finished, immediately processes the earlier received
> > > pending results.
> >
> > Nope this is not the issue.  If you call a blocking call after you do a
> > pending call then your app is broken.  This is calling a pending call
> > after a blocking call to the bus is made.

Not necessarily, you could have a pending call to a method that takes the 
service a long time to process but want to call a fast method before the 
first result is available.

> I'm not sure I understand this fully from the descriptions you guys are
> giving, but I don't think the app is broken. The pending call should not
> get its notification callback until the blocking call is done (because
> no reentrancy back into the same thread is allowed while in a blocking
> call). So it's a bug if the pending call is notified while blocking.
> However, it's also a bug if the pending call isn't immediately notified
> after the blocking completes.

I was talking about the second case.
However I do not think it's a bug:

the pending result is received but not dispatched due to the blocking call. 
After processing the blocking result the application returns to the event 
loop.

How would the dbus library dispatch the stored pending result if it is not 
called?
IMHO it is the responsibility of the application to check for stored pending 
results after doing a blocking call if it hasn't received all expected ones 
yet.

Cheers,
Kevin

-- 
Kevin Krammer <kevin.krammer at gmx.at>
Qt/KDE Developer, Debian User
Moderator: www.mrunix.de (German), www.qtforum.org
-------------- 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/20051217/46b31096/attachment.pgp


More information about the dbus mailing list