From 518a1cf0f5a201843197c1e2aa860008a9a58e88 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 13 Jan 2016 09:40:51 -0700 Subject: [PATCH] Destroy sk_out server key when we are done Signed-off-by: Jens Axboe --- fio.c | 6 ++++-- server.c | 5 +++++ server.h | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/fio.c b/fio.c index 44354e28..69014ddb 100644 --- a/fio.c +++ b/fio.c @@ -43,7 +43,7 @@ int main(int argc, char *argv[], char *envp[]) goto done; if (parse_options(argc, argv)) - goto done; + goto done_key; /* * line buffer stdout to avoid output lines from multiple @@ -57,11 +57,13 @@ int main(int argc, char *argv[], char *envp[]) set_genesis_time(); if (fio_start_all_clients()) - goto done; + goto done_key; ret = fio_handle_clients(&fio_client_ops); } else ret = fio_backend(NULL); +done_key: + fio_server_destroy_sk_key(); done: deinitialize_fio(); return ret; diff --git a/server.c b/server.c index 120400f9..a593a73f 100644 --- a/server.c +++ b/server.c @@ -2186,6 +2186,11 @@ static void set_sig_handlers(void) sigaction(SIGINT, &act, NULL); } +void fio_server_destroy_sk_key(void) +{ + pthread_key_delete(sk_out_key); +} + int fio_server_create_sk_key(void) { if (pthread_key_create(&sk_out_key, NULL)) { diff --git a/server.h b/server.h index 0e60750f..12c72759 100644 --- a/server.h +++ b/server.h @@ -221,6 +221,7 @@ extern void fio_server_send_start(struct thread_data *); extern int fio_net_send_quit(int sk); extern int fio_server_create_sk_key(void); +extern void fio_server_destroy_sk_key(void); extern int exit_backend; extern int fio_net_port; -- 2.25.1