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);