static struct flist_head client_hash[FIO_CLIENT_HASH_SZ];
static int handle_client(struct fio_client *client);
static struct flist_head client_hash[FIO_CLIENT_HASH_SZ];
static int handle_client(struct fio_client *client);
if (fio_server_parse_string(hostname, &client->hostname,
&client->is_sock, &client->port,
if (fio_server_parse_string(hostname, &client->hostname,
&client->is_sock, &client->port,
-static void handle_eta(struct fio_net_cmd *cmd)
+static void dec_jobs_eta(struct client_eta *eta)
+{
+ if (!--eta->pending) {
+ display_thread_status(&eta->eta);
+ free(eta);
+ }
+}
+
+static void handle_eta(struct fio_client *client, struct fio_net_cmd *cmd)
{
struct jobs_eta *je = (struct jobs_eta *) cmd->payload;
struct client_eta *eta = (struct client_eta *) cmd->tag;
dprint(FD_NET, "client: got eta tag %p, %d\n", eta, eta->pending);
{
struct jobs_eta *je = (struct jobs_eta *) cmd->payload;
struct client_eta *eta = (struct client_eta *) cmd->tag;
dprint(FD_NET, "client: got eta tag %p, %d\n", eta, eta->pending);
eta = malloc(sizeof(*eta));
memset(&eta->eta, 0, sizeof(eta->eta));
eta->pending = nr_clients;
eta = malloc(sizeof(*eta));
memset(&eta->eta, 0, sizeof(eta->eta));
eta->pending = nr_clients;
flist_for_each(entry, &client_list) {
client = flist_entry(entry, struct fio_client, list);
flist_for_each(entry, &client_list) {
client = flist_entry(entry, struct fio_client, list);