* gradually flushed. */
void bluesky_flushd_invoke(BlueSkyFS *fs)
{
- g_log("bluesky/flushd", G_LOG_LEVEL_DEBUG,
- "Writeout process invoked");
-
g_mutex_lock(fs->lock);
g_hash_table_foreach(fs->inodes, flushd_inode, fs);
g_mutex_unlock(fs->lock);
{
g_return_if_fail(async->status != ASYNC_COMPLETE);
+ bluesky_time_hires elapsed = bluesky_now_hires() - async->start_time;
+
g_mutex_lock(async->store->lock);
async->store->pending--;
if (async->store->pending == 0)
async->notifiers = nl->next;
g_thread_pool_push(notifier_thread_pool, nl, NULL);
}
+
+ g_log("bluesky/store", G_LOG_LEVEL_DEBUG,
+ "[%p] complete: elapsed = %"PRIi64" ns",
+ async, elapsed);
}
void bluesky_store_async_submit(BlueSkyStoreAsync *async)
{
BlueSkyStore *store = async->store;
+ async->start_time = bluesky_now_hires();
+
+ g_log("bluesky/store", G_LOG_LEVEL_DEBUG, "[%p] submit: %s %s",
+ async,
+ async->op == STORE_OP_GET ? "GET"
+ : async->op == STORE_OP_PUT ? "PUT"
+ : async->op == STORE_OP_DELETE ? "DELETE"
+ : async->op == STORE_OP_BARRIER ? "BARRIER" : "???",
+ async->key);
+
/* Barriers are handled specially, and not handed down the storage
* implementation layer. */
if (async->op == STORE_OP_BARRIER) {
return;
}
- g_log("bluesky/store", G_LOG_LEVEL_DEBUG, "submit: %s %s",
- async->op == STORE_OP_GET ? "GET"
- : async->op == STORE_OP_PUT ? "PUT"
- : async->op == STORE_OP_DELETE ? "DELETE" : "???",
- async->key);
-
g_mutex_lock(async->store->lock);
async->store->pending++;
g_mutex_unlock(async->store->lock);