<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Glenn,<div class=""><div><br class=""></div><div>Thanks for your feedback.  The <a href="http://github.com/lathiat/avahi" class="">github.com/lathiat/avahi</a> repository is actually “official", and not a fork as such. </div><div><br class=""></div><div><br class=""></div><div>Your analysis is correct, per the ticket this issue was recently raised by someone else for use with Python as well.  It’s a deficiency in the current D-BUS API.</div><div><br class=""></div><div>This works fine for us in libavahi-client because we subscribe to all signals from Avahi up front, before any objects are created.  This however, does not work for dynamic usage of the D-BUS API with Introspection, such as used with Python.  They create the object, and can only then subscribe to it (because it did not exist before).  This almost seems like a deficiency in the D-BUS APIs but I guess we have to work with it :-)</div><div><br class=""></div><div>I plan to fix this by adding to the D-BUS API, I am told that the “common” fix for this is to add a catch-up command that requests that all messages are re-sent.  My main concern with this is that it seems like a race condition in it’s own right, we may send duplicates and with bad timing the client may also get removals for additions they had not yet seen.  So I needed to put some more thought into that.</div><div><br class=""></div><div>The other fix would be to have a “Start” signal to call after subscribing to the events, however that would break existing applications.  But they may well be the best fix, combined with putting that requirement under a new version of the API and to offer both simultaneously.</div><div><br class=""></div><div><br class=""></div><div>I would love your feedback on if you have any thoughts and what would best work for your Go binding.  I would also love to integrate the go binding into the official tree and releases — please let me know if we can work together on that :-)</div><div><br class=""></div><div><br class=""></div><div>Cheers,</div><div>Trent</div><div><br class=""></div><div><blockquote type="cite" class=""><div class="">On 2 Sep 2015, at 3:27 AM, Glenn Martin <<a href="mailto:lifewarped@yahoo.com" class="">lifewarped@yahoo.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><div id="yui_3_16_0_1_1441135327909_3262" class=""><span class=""></span></div><div id="yui_3_16_0_1_1441135327909_3106" class=""><div id="yui_3_16_0_1_1441135327909_3105" class=""><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;">It seems the entire problem above is related to a Signal API race, i found some information about on a GitHub fork of the project:</div><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr"><a href="https://github.com/lathiat/avahi/issues/9" id="yui_3_16_0_1_1441135327909_3169" class="">https://github.com/lathiat/avahi/issues/9</a> which i think is mirrored in this ticket as well on the formal Avahi website's tracker: <a href="http://www.avahi.org/ticket/247" id="yui_3_16_0_1_1441135327909_3409" class="">http://www.avahi.org/ticket/247</a><br class=""></div><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr"><br class=""></div><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr">The solution was fairly simple, I simply pre-register for all notifications for a browse object without knowing the path before calling in to existence the Browser object. I can then buffer the results and filter out any that didnt come from my specific instance. This feels a bit messy but it is effective for me at the moment.</div><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr"><br class=""></div><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr">I hope this information helps others.</div><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr"><br class=""></div><div class="y_msg_container" id="yui_3_16_0_1_1441135327909_3129" dir="ltr">Glenn Martin</div> </div> </div>  </div></div>_______________________________________________<br class="">avahi mailing list<br class=""><a href="mailto:avahi@lists.freedesktop.org" class="">avahi@lists.freedesktop.org</a><br class="">http://lists.freedesktop.org/mailman/listinfo/avahi<br class=""></div></blockquote></div><br class=""></div></body></html>