+void bluesky_store_async_ref(BlueSkyStoreAsync *async)
+{
+ if (async == NULL)
+ return;
+
+ g_atomic_int_inc(&async->refcount);
+}
+
+void bluesky_store_async_unref(BlueSkyStoreAsync *async)
+{
+ if (async == NULL)
+ return;
+
+ if (g_atomic_int_dec_and_test(&async->refcount)) {
+ async->store->impl->cleanup(async->store->handle, async);
+ g_mutex_free(async->lock);
+ g_cond_free(async->completion_cond);
+ g_free(async->key);
+ bluesky_string_unref(async->data);
+ g_free(async);
+ g_print("Freed async\n");
+ }
+}
+