From da5d21b5491f4c58aedf92c6bf4549284a6a41c8 Mon Sep 17 00:00:00 2001 From: Alexander Sopov Date: Thu, 27 Nov 2025 19:37:14 +0300 Subject: [PATCH] Move close(pipe_[]) from Teardown to Deinitialize It removes possibility close and write will appear simultaneously in different threads Relates-To: NLAM-166 Signed-off-by: Alexander Sopov --- olp-cpp-sdk-core/src/http/curl/NetworkCurl.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/olp-cpp-sdk-core/src/http/curl/NetworkCurl.cpp b/olp-cpp-sdk-core/src/http/curl/NetworkCurl.cpp index dd4bb6bce..3a30202ce 100644 --- a/olp-cpp-sdk-core/src/http/curl/NetworkCurl.cpp +++ b/olp-cpp-sdk-core/src/http/curl/NetworkCurl.cpp @@ -558,6 +558,11 @@ void NetworkCurl::Deinitialize() { } #endif thread_.join(); + +#if (defined OLP_SDK_NETWORK_HAS_PIPE) || (defined OLP_SDK_NETWORK_HAS_PIPE2) + close(pipe_[0]); + close(pipe_[1]); +#endif } else { // We are trying to stop the very thread we are in. This is not recommended, // but we try to handle it gracefully. This could happen by calling from one @@ -589,11 +594,6 @@ void NetworkCurl::Teardown() { // cURL teardown curl_multi_cleanup(curl_); curl_ = nullptr; - -#if (defined OLP_SDK_NETWORK_HAS_PIPE) || (defined OLP_SDK_NETWORK_HAS_PIPE2) - close(pipe_[0]); - close(pipe_[1]); -#endif } // Handle completed messages