From 0964392b9fef125c9259e14d0c5f98a97e9e07c0 Mon Sep 17 00:00:00 2001 From: "shuyin.wsy" Date: Wed, 5 Sep 2018 09:47:35 +0800 Subject: [PATCH] Fix: race auth_server thread create & detach --- ChangeLog | 1 + src/apps/relay/netengine.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f0a2b81b..5669869a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,7 @@ Version 4.5.0.8 'dan Eider': - Add more explanation on use-auth-secret / REST in example config (by Krithin Sitaram) - Add a Warning if lines in config file ends with semicolon (by heyheyjc) - Fix --prod pointer bug + - Fix auth server thread detach race (by weishuyin) 12/10/2017 Oleg Moskalenko Version 4.5.0.7 'dan Eider': diff --git a/src/apps/relay/netengine.c b/src/apps/relay/netengine.c index 753063ae..fb83292a 100644 --- a/src/apps/relay/netengine.c +++ b/src/apps/relay/netengine.c @@ -1786,11 +1786,13 @@ static void* run_auth_server_thread(void *arg) static void setup_auth_server(struct auth_server *as) { - if(pthread_create(&(as->thr), NULL, run_auth_server_thread, as)) { + pthread_attr_t attr; + if(pthread_attr_init(&attr) || + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) || + pthread_create(&(as->thr), &attr, run_auth_server_thread, as)) { perror("Cannot create auth thread\n"); exit(-1); } - pthread_detach(as->thr); } static void* run_admin_server_thread(void *arg)