We use it from helper threads, so let's just unconditionally
set it up. This fixes a problem on fio exit with libraries or
engines that also create pthread keys.
Reported-by: Jens Rosenboom <j.rosenboom@x-ion.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
#error "No available clock source!"
#endif
+ if (fio_server_create_sk_key())
+ goto done;
+
if (parse_options(argc, argv))
goto done;
sigaction(SIGINT, &act, NULL);
}
-static int fio_server(void)
+int fio_server_create_sk_key(void)
{
- int sk, ret;
-
if (pthread_key_create(&sk_out_key, NULL)) {
log_err("fio: can't create sk_out backend key\n");
- return -1;
+ return 1;
}
pthread_setspecific(sk_out_key, NULL);
+ return 0;
+}
+
+static int fio_server(void)
+{
+ int sk, ret;
dprint(FD_NET, "starting server\n");
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 int exit_backend;
extern int fio_net_port;