X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fstore.c;h=8cf9f0e9d93fb6580024bf31298dd4011d04d410;hb=bb92882c6f3b517f8a30c268792642870ac896d2;hp=7a63b04acc8a31e612491e610755292a0874a44a;hpb=6abd55eff09d83999c7a84e0ee63bdc3100f7666;p=bluesky.git diff --git a/bluesky/store.c b/bluesky/store.c index 7a63b04..8cf9f0e 100644 --- a/bluesky/store.c +++ b/bluesky/store.c @@ -88,6 +88,11 @@ BlueSkyStoreAsync *bluesky_store_async_new(BlueSkyStore *store) return async; } +gpointer bluesky_store_async_get_handle(BlueSkyStoreAsync *async) +{ + return async->store->handle; +} + void bluesky_store_async_ref(BlueSkyStoreAsync *async) { if (async == NULL) @@ -215,6 +220,7 @@ static void op_complete(gpointer a, gpointer b) { BlueSkyStoreAsync *barrier = (BlueSkyStoreAsync *)b; + bluesky_store_async_ref(barrier); g_mutex_lock(barrier->lock); barrier->store_private = GINT_TO_POINTER(GPOINTER_TO_INT(barrier->store_private) - 1); @@ -223,6 +229,7 @@ static void op_complete(gpointer a, gpointer b) bluesky_store_async_mark_complete(barrier); } g_mutex_unlock(barrier->lock); + bluesky_store_async_unref(barrier); } /* Add the given operation to the barrier. The barrier will not complete until @@ -395,10 +402,12 @@ static void filestore_submit(gpointer s, BlueSkyStoreAsync *async) switch (async->op) { case STORE_OP_GET: async->data = filestore_get(async->key); + async->result = 0; break; case STORE_OP_PUT: filestore_put(async->key, async->data); + async->result = 0; break; default: