예제 #1
0
static void shutdown_worker(struct submit_worker *sw, unsigned int *sum_cnt)
{
	struct thread_data *parent = sw->wq->td;

	pthread_join(sw->thread, NULL);
	(*sum_cnt)++;
	sum_thread_stats(&parent->ts, &sw->td.ts, *sum_cnt);
	free_worker(sw);
}
예제 #2
0
파일: rate-submit.c 프로젝트: axboe/fio
static void io_workqueue_exit_worker_fn(struct submit_worker *sw,
                                        unsigned int *sum_cnt)
{
    struct thread_data *td = sw->priv;

    (*sum_cnt)++;
    sum_thread_stats(&sw->wq->td->ts, &td->ts, *sum_cnt == 1);

    fio_options_free(td);
    close_and_free_files(td);
    if (td->io_ops)
        close_ioengine(td);
    td_set_runstate(td, TD_EXITED);
}
예제 #3
0
파일: gclient.c 프로젝트: CodeMonk/fio
static void gfio_thread_status_op(struct fio_client *client,
				  struct fio_net_cmd *cmd)
{
	struct cmd_ts_pdu *p = (struct cmd_ts_pdu *) cmd->payload;

	gfio_display_ts(client, &p->ts, &p->rs);

	if (sum_stat_clients == 1)
		return;

	sum_thread_stats(&client_ts, &p->ts, sum_stat_nr);
	sum_group_stats(&client_gs, &p->rs);

	client_ts.members++;
	client_ts.thread_number = p->ts.thread_number;
	client_ts.groupid = p->ts.groupid;

	if (++sum_stat_nr == sum_stat_clients) {
		strcpy(client_ts.name, "All clients");
		gfio_display_ts(client, &client_ts, &client_gs);
	}
}