+void bluesky_store_async_submit(BlueSkyStoreAsync *async)
+{
+ BlueSkyStore *store = async->store;
+
+ g_mutex_lock(async->store->lock);
+ async->store->pending++;
+ g_mutex_unlock(async->store->lock);
+
+ store->impl->submit(store->handle, async);
+
+ if (bluesky_options.synchronous_stores)
+ bluesky_store_async_wait(async);
+}
+
+void bluesky_store_sync(BlueSkyStore *store)
+{
+ g_mutex_lock(store->lock);
+ g_print("Waiting for pending store operations to complete...\n");
+ while (store->pending > 0) {
+ g_cond_wait(store->cond_idle, store->lock);
+ }
+ g_mutex_unlock(store->lock);
+ g_print("Operations are complete.\n");
+}
+