BlueSkyCloudLog *log2
= (BlueSkyCloudLog *)g_hash_table_lookup(log->fs->locations, &id);
// TODO: refcount
- g_mutex_unlock(log->fs->lock);
g_assert(log2 != NULL);
+ bluesky_cloudlog_ref(log2);
+ g_mutex_unlock(log->fs->lock);
bluesky_cloudlog_serialize(log2, state);
+ bluesky_cloudlog_unref(log2);
}
+ g_mutex_lock(log->lock);
+ bluesky_cloudlog_fetch(log);
g_assert(log->data != NULL);
log->location = state->location;
g_string_append_len(state->data, log->data->data, log->data->len);
log->location_flags |= CLOUDLOG_CLOUD;
+ g_mutex_unlock(log->lock);
return log->location;
}