struct io_logs *p;
p = calloc(1, sizeof(*l->pending));
- p->max_samples = l->td->o.iodepth;
+ p->max_samples = DEF_LOG_ENTRIES;
p->log = calloc(p->max_samples, log_entry_sz(l));
l->pending = p;
}
if (l->log_gz && !p->td)
l->log_gz = 0;
else if (l->log_gz || l->log_gz_store) {
- pthread_mutex_init(&l->chunk_lock, NULL);
+ mutex_init_pshared(&l->chunk_lock);
p->td->flags |= TD_F_COMPRESS_LOG;
}
cur_log = flist_first_entry(&log->io_logs, struct io_logs, list);
flist_del_init(&cur_log->list);
free(cur_log->log);
+ sfree(cur_log);
}
if (log->pending) {
#endif
-void flush_log(struct io_log *log, int do_append)
+void flush_log(struct io_log *log, bool do_append)
{
void *buf;
FILE *f;
cur_log = flist_first_entry(&log->io_logs, struct io_logs, list);
flist_del_init(&cur_log->list);
flush_samples(f, cur_log->log, cur_log->nr_samples * log_entry_sz(log));
+ sfree(cur_log);
}
fclose(f);
data->samples = cur_log->log;
data->nr_samples = cur_log->nr_samples;
- cur_log->nr_samples = 0;
- cur_log->max_samples = 0;
- cur_log->log = NULL;
+ sfree(cur_log);
gz_work(data);
}