Re: [Dbus-cxx-devel] Some 'sent' messages don't get sent
Status: Beta
Brought to you by:
rvinyard
From: Patrick A. <pa...@ph...> - 2009-09-01 18:03:57
|
Rick: I also added a bug to the dbus bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=23584 with a bit more information, including a logfile showing the problem happening. It also may be possible to create a testcase that forces this problem to occur by adding a mutex or something inside on_wakeup_main that prevents that function from exiting until the dispatch loop executes once. I'll check your fix as soon as I can to see if it works. Patrick On Tue, 1 Sep 2009, Rick L. Vinyard, Jr. wrote: > Patrick Allison wrote: > >> A (bad) workaround in dbus-cxx would be a mutex preventing messages from >> being dispatched while in the read handler in the watch thread. >> > > I've forwarded your emails to the dbus development list to hopefully start > a discussion as to whether there is a bug in dbus or dbus-cxx' use of > dbus. > > In the meantime I've commited what I hope will fix the problem. It's > difficult for me to test since my systems don't seem to experience the > same bug. > > In short, the fix (hopefully only temporary until we figure out which > library the bug is in) simply initiates processing in the dispatch thread > if any read or write watch activity occurred. > > That should allow the dispatch thread and watch thread to operate at full > capacity without any dependent locking and still make sure that any > silently queued messages are still dealt with. > > The fixed version is currently in subversion: > http://sourceforge.net/projects/dbus-cxx/develop > > Let me know if this fixes the problem and I'll push out a general release. > > Thanks Patrick for tracking this one down, > > ---- > > Rick > > |