From bbcaa4942936d45506cfa013cdf7ee77f6514b6f Mon Sep 17 00:00:00 2001 From: Andre Puschmann Date: Mon, 14 Jun 2021 12:51:30 +0200 Subject: [PATCH] network_utils: fix TSAN detected race --- lib/include/srsran/common/network_utils.h | 2 +- lib/src/common/network_utils.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/include/srsran/common/network_utils.h b/lib/include/srsran/common/network_utils.h index 8f19dd5d2..d9f4fc93d 100644 --- a/lib/include/srsran/common/network_utils.h +++ b/lib/include/srsran/common/network_utils.h @@ -154,7 +154,7 @@ private: // state std::mutex socket_mutex; std::map active_sockets; - bool running = false; + std::atomic running = {false}; int pipefd[2] = {-1, -1}; std::vector rem_fd_tmp_list; std::condition_variable rem_cvar; diff --git a/lib/src/common/network_utils.cc b/lib/src/common/network_utils.cc index bd21546c4..232c091ea 100644 --- a/lib/src/common/network_utils.cc +++ b/lib/src/common/network_utils.cc @@ -459,7 +459,7 @@ void socket_manager::run_thread() FD_SET(pipefd[0], &total_fd_set); max_fd = std::max(pipefd[0], max_fd); - while (running) { + while (running.load(std::memory_order_relaxed)) { memcpy(&read_fd_set, &total_fd_set, sizeof(total_fd_set)); int n = select(max_fd + 1, &read_fd_set, nullptr, nullptr, nullptr);