From 4e64fbc78b47f0f5e353497b154fc182a7f73a8f Mon Sep 17 00:00:00 2001 From: kannibalox Date: Tue, 3 Dec 2024 12:26:51 -0500 Subject: [PATCH] Properly use compare_exchange_strong In practice, calling `network.scgi.open_port` again doesn't trigger this function. --- src/thread_worker.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/thread_worker.cc b/src/thread_worker.cc index 61fc4083..4221f1aa 100644 --- a/src/thread_worker.cc +++ b/src/thread_worker.cc @@ -67,11 +67,10 @@ ThreadWorker::init_thread() { bool ThreadWorker::set_scgi(rpc::SCgi* scgi) { - if (m_scgi != nullptr) + rpc::SCgi* expected = nullptr; + if (!m_scgi.compare_exchange_strong(expected, scgi)) return false; - m_scgi = scgi; - change_xmlrpc_log(); queue_item((thread_base_func)&start_scgi);