.stop = handle_stop,
.eta = display_thread_status,
.probe = handle_probe,
+ .eta_msec = FIO_CLIENT_DEF_ETA_MSEC,
};
static struct timeval eta_tv;
flist_for_each(entry, &client_hash[bucket]) {
client = flist_entry(entry, struct fio_client, hash_list);
- if (client->fd == fd) {
- client->refs++;
- return client;
- }
+ if (client->fd == fd)
+ return fio_get_client(client);
}
return NULL;
sum_stat_clients--;
}
-static void put_client(struct fio_client *client)
+void fio_put_client(struct fio_client *client)
{
remove_client(client);
}
+struct fio_client *fio_get_client(struct fio_client *client)
+{
+ client->refs++;
+ return client;
+}
+
static void __fio_client_add_cmd_option(struct fio_client *client,
const char *opt)
{
return 0;
}
+static void probe_client(struct fio_client *client)
+{
+ dprint(FD_NET, "client: send probe\n");
+
+ fio_net_send_simple_cmd(client->fd, FIO_NET_CMD_PROBE, 0, &client->cmd_list);
+}
+
static int fio_client_connect_ip(struct fio_client *client)
{
struct sockaddr *addr;
client->fd = fd;
fio_client_add_hash(client);
client->state = Client_connected;
+
+ probe_client(client);
return 0;
}
sigaction(SIGTERM, &act, NULL);
}
-static void probe_client(struct fio_client *client)
-{
- dprint(FD_NET, "client: send probe\n");
-
- fio_net_send_simple_cmd(client->fd, FIO_NET_CMD_PROBE, 0, &client->cmd_list);
-}
-
static int send_client_cmd_line(struct fio_client *client)
{
struct cmd_single_line_pdu *cslp;
continue;
}
- probe_client(client);
-
if (client->argc > 1)
send_client_cmd_line(client);
}
struct timeval tv;
gettimeofday(&tv, NULL);
- if (mtime_since(&eta_tv, &tv) >= 900) {
+ if (mtime_since(&eta_tv, &tv) >= ops->eta_msec) {
request_client_etas(ops);
memcpy(&eta_tv, &tv, sizeof(tv));
retval = 1;
} else if (client->error)
retval = 1;
- put_client(client);
+ fio_put_client(client);
}
}