[Mono-bugs] [Bug 510791] Zeroconf's AvahiDBus Provider is sometimes unable to successfully Resolve()

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Jun 15 00:22:53 EDT 2009


http://bugzilla.novell.com/show_bug.cgi?id=510791

User xerox1101 at gmail.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=510791#c1





--- Comment #1 from Bryan Murawski <xerox1101 at gmail.com>  2009-06-14 22:22:51 MDT ---
So after further research this behavior seems to be occurring due to the code
for trapping and untrapping signals. What's happening is that the 'Found'
signal from the resolve call is being put into the delayed_signals_recycled
queue. Then instead of being processed from there when DispatchSignals() is
called it's moved into another queue (the delayed_signals queue). Here it waits
indefinitely for another call to DispatchSignals() to process it, but one never
comes along since that function is only called when we receive new messages.

This whole AvahiDBus section seems poorly designed to me. First off, I don't
understand why there are using two queues for signals in the first place when
one would do. Second, relying on new messages to trigger a DispatchSignals()
call is a bad idea since there is no guarantee that another message will ever
be received. 

I think that the code should be cleaned up so that there is only one delayed
signal queue and so that this queue is processed on the call to
UntrapSignals(). I can submit a patch that does as much if this sounds right to
you.

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list