Esempio n. 1
0
static int finish_log(struct thread_data *td, struct io_log *log, int trylock)
{
	if (td->tp_data)
		iolog_flush(log, 1);

	if (trylock) {
		if (fio_trylock_file(log->filename))
			return 1;
	} else
		fio_lock_file(log->filename);

	if (td->client_type == FIO_CLIENT_TYPE_GUI)
		fio_send_iolog(td, log, log->filename);
	else
		flush_log(log);

	fio_unlock_file(log->filename);
	free_log(log);
	return 0;
}
static int finish_log_named(struct thread_data *td, struct io_log *log,
			    const char *prefix, const char *postfix,
			    int trylock)
{
	char file_name[256];

	snprintf(file_name, sizeof(file_name), "%s_%s.log", prefix, postfix);

	if (trylock) {
		if (fio_trylock_file(file_name))
			return 1;
	} else
		fio_lock_file(file_name);

	if (td->client_type == FIO_CLIENT_TYPE_GUI) {
		fio_send_iolog(td, log, file_name);
		free(log->log);
		free(log);
	} else
		__finish_log(log, file_name);

	fio_unlock_file(file_name);
	return 0;
}