From: Jens Axboe Date: Mon, 14 Dec 2015 21:46:32 +0000 (-0700) Subject: server: create sk_out_key earlier X-Git-Tag: fio-2.3~33^2~2 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=9c0037824e313eb9bd7dbc53cf302a42ad011fa8;p=fio.git server: create sk_out_key earlier The previous code worked on Linux, since we seem to get '0' as the key always. It segfaults on other platforms, since we call pthread_getspecific() before the key has been created. Signed-off-by: Jens Axboe --- diff --git a/server.c b/server.c index 6d96a66f..27ff2854 100644 --- a/server.c +++ b/server.c @@ -2084,6 +2084,13 @@ static int fio_server(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; + } + + pthread_setspecific(sk_out_key, NULL); + dprint(FD_NET, "starting server\n"); if (fio_handle_server_arg()) @@ -2095,9 +2102,6 @@ static int fio_server(void) set_sig_handlers(); - if (pthread_key_create(&sk_out_key, NULL)) - log_err("fio: can't create sk_out backend key\n"); - ret = accept_loop(sk); close(sk);