eds: Ensure that property changes are signalled before .change_*() returns
authorPhilip Withnall <philip@tecnocode.co.uk>
Wed, 31 Aug 2011 21:21:15 +0000 (22:21 +0100)
committerPhilip Withnall <philip@tecnocode.co.uk>
Fri, 2 Sep 2011 18:28:33 +0000 (19:28 +0100)
commitbc0141fb8317caa614e930cfecbb4cf437797bc2
treeca8124cfed33f9f627c39e96191e6beee3b69ff7
parent6166dda19b16af130b61f61f3ae3b2a92a49cba7
eds: Ensure that property changes are signalled before .change_*() returns

We can't rely on E.BookClientView.objects_modified being emitted before
E.BookClient.modify_contact() returns. In order to guarantee that the
relevant properties will be notified before Edsf.Persona.change_*() returns,
we therefore move all calls to modify_contact() into a new
Edsf.PersonaStore._commit_modified_property() method, and block returning
from that on receipt of a property change notification from e-d-s.

However, we also add a timeout to _commit_modified_property() (defaulting to
30 seconds), so that if we don't receive a property change notification in
that time period, we error out from the .change_*() method.

Helps: bgo#657510
backends/eds/lib/edsf-persona-store.vala