+ if (logsize >= LOG_SEGMENT_SIZE
+ || g_async_queue_length(log->queue) <= 0)
+ {
+ int batchsize = 0;
+ fdatasync(log->fd);
+ while (committed != NULL) {
+ item = (BlueSkyLogItem *)committed->data;
+ item->committed = TRUE;
+ g_cond_signal(item->cond);
+ g_mutex_unlock(item->lock);
+ committed = g_slist_delete_link(committed, committed);
+ batchsize++;
+ }
+ /* if (batchsize > 1)
+ g_print("Log batch size: %d\n", batchsize); */
+ }
+