core: Improve quiescence timeout
authorPhilip Withnall <philip@tecnocode.co.uk>
Mon, 19 Mar 2012 19:02:05 +0000 (19:02 +0000)
committerPhilip Withnall <philip@tecnocode.co.uk>
Mon, 19 Mar 2012 19:02:05 +0000 (19:02 +0000)
Ensure that we start the timeout in the case that all backends are marked
as quiescent (meaning that they've added all their persona stores), but none
of the persona stores are.

folks/individual-aggregator.vala

index aa3aeaa..1b8b71b 100644 (file)
@@ -771,6 +771,15 @@ public class Folks.IndividualAggregator : Object
       if (store.is_quiescent == false)
         {
           this._non_quiescent_persona_store_count++;
+
+          /* Start the timeout to force quiescence if the backend (or its
+           * persona stores) misbehave and don't reach quiescence. */
+          if (this._quiescent_timeout_id == 0)
+            {
+              this._quiescent_timeout_id =
+                  Timeout.add_seconds (this._QUIESCENT_TIMEOUT,
+                      this._quiescent_timeout_cb);
+            }
         }
 
       /* Handle any pre-existing personas in the store. This can happen if the