From: Jaroslav Kysela Date: Thu, 10 Mar 2016 17:55:51 +0000 (+0100) Subject: tcp_server_done: improve shutdown locking (clang sanitizer) X-Git-Tag: v4.2.1~892 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=78507afcfaee39f2366cca6c4ddf45f1a4859261;p=thirdparty%2Ftvheadend.git tcp_server_done: improve shutdown locking (clang sanitizer) --- diff --git a/src/tcp.c b/src/tcp.c index 6513bcc2e..03e1505a5 100644 --- a/src/tcp.c +++ b/src/tcp.c @@ -1115,14 +1115,15 @@ tcp_server_done(void) tvh_pipe_close(&tcp_server_pipe); tvhpoll_destroy(tcp_server_poll); + pthread_mutex_lock(&global_lock); t = mclk(); while (LIST_FIRST(&tcp_server_active) != NULL) { if (t + sec2mono(5) < mclk()) tvhtrace("tcp", "tcp server %p active too long", LIST_FIRST(&tcp_server_active)); + pthread_mutex_unlock(&global_lock); tvh_safe_usleep(20000); + pthread_mutex_lock(&global_lock); } - - pthread_mutex_lock(&global_lock); while ((tsl = LIST_FIRST(&tcp_server_join)) != NULL) { LIST_REMOVE(tsl, jlink); pthread_mutex_unlock(&global_lock);