FetchDeltaSuperData *fetch_data);
static void enqueue_one_static_delta_part_request_s (OtPullData *pull_data,
FetchStaticDeltaData *fetch_data);
+static void ensure_idle_queued (OtPullData *pull_data);
static gboolean scan_one_metadata_object (OtPullData *pull_data,
const char *checksum,
g_free (checksum);
}
+ /* Finally, if we still have capacity, scan more metadata objects */
+ if (!g_queue_is_empty (&pull_data->scan_object_queue))
+ ensure_idle_queued (pull_data);
}
}
if (pull_data->idle_src)
return;
+ /* If the operation queue is full, there's no point in blocking further. */
+ if (fetcher_queue_is_full (pull_data))
+ return;
+
idle_src = g_idle_source_new ();
g_source_set_callback (idle_src, idle_worker, pull_data, NULL);
g_source_attach (idle_src, pull_data->main_context);