From 5cf0871ea1819ad3b63bc6fc8d7bc61342c5cdb7 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Thu, 1 Feb 2024 14:13:13 +0800 Subject: [PATCH] FIX: thread safe of http extra headers Change-Id: I6ffa424be7ccb6abd78a66cc8be535f038b05469 Jira: none --- src/slic3r/Utils/Http.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 099fd6168..12ff95400 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -84,6 +84,7 @@ struct CurlGlobalInit std::unique_ptr CurlGlobalInit::instance; std::map extra_headers; +std::mutex g_mutex; struct Http::priv { @@ -470,6 +471,7 @@ void Http::priv::http_perform() Http::Http(const std::string &url) : p(new priv(url)) { + std::lock_guard l(g_mutex); for (auto it = extra_headers.begin(); it != extra_headers.end(); it++) this->header(it->first, it->second); } @@ -740,6 +742,7 @@ Http Http::del(std::string url) void Http::set_extra_headers(std::map headers) { + std::lock_guard l(g_mutex); extra_headers.swap(headers); }