desktop-data-model r7279 - trunk/ddm



Author: otaylor
Date: Wed Apr 23 18:09:16 2008
New Revision: 7279
URL: http://svn.gnome.org/viewvc/desktop-data-model?rev=7279&view=rev

Log:
Fix problem where when we received an error reply, we wouldn't
 schedule a new flush, so we might never do follow-up processing
 (like sending the query-reply on a multi-part fetch.)


Modified:
   trunk/ddm/ddm-data-model.c

Modified: trunk/ddm/ddm-data-model.c
==============================================================================
--- trunk/ddm/ddm-data-model.c	(original)
+++ trunk/ddm/ddm-data-model.c	Wed Apr 23 18:09:16 2008
@@ -1016,6 +1016,18 @@
                                 DDMDataQuery *query)
 {
     gint64 serial = _ddm_data_query_get_serial(query);
+
+    /* There may be waiting work items that are satisfied because this query is now answered. 
+     */
+    if (model->work_items->length > 0)  {
+        gint64 waiting_serial = _ddm_work_item_get_min_serial(model->work_items->head->data);
+        if (waiting_serial > model->max_answered_query_serial && waiting_serial <= serial) {
+            g_debug("Scheduling flush because waiting work item satisfied by %s",
+                    ddm_data_query_get_id_string(query));
+            ddm_data_model_schedule_flush(model);
+        }
+    }
+    
     if (serial > model->max_answered_query_serial)
         model->max_answered_query_serial = serial;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]