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 <axboe@fb.com>
{
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())
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);