Hi Patrik, > Technology signals TechnologyAdded, TechnologyRemoved and > GetTechnologies work fine and race free. However, I think the Technology > properties are not race free due to the following scenario: > - application requests GetTechnologies() > - while processing the technology array and subscribing to the > technology D-Bus paths in order to receive notifications, one of the not > yet processed technologies update a property and sends a property > updated signal > - since the application has not subscribed to the signal, the property > change is missed > - application ends up with old information for the technology, if it > uses the properties sent in GetTechnologies() method call. > > This all can be fixed by explicitely fetching all properties after > subscribing to the technology path, but that would imply the properties > are unnecessarily sent in GetTechnologies()? Any thoughts how this > should be handled?
essentially we need to use a proper updated D-Bus bus daemon where you can subscribe to signals based on a path prefix. And that we move over to using the ObjectManager interfaces from the D-Bus specification. At least this is the plan to do so sometime this year. Let me put it this way. GetTechnologies with the included properties is already way better than what we had before (race condition wise). It minimizes the window of a missed signal by a lot. Regards Marcel _______________________________________________ connman mailing list [email protected] http://lists.connman.net/listinfo/connman
