diff --git a/include/xrpl/basics/Log.h b/include/xrpl/basics/Log.h index dae3fa14af..e2112d2f7f 100644 --- a/include/xrpl/basics/Log.h +++ b/include/xrpl/basics/Log.h @@ -155,7 +155,7 @@ private: mutable std::mutex batchMutex_; static constexpr size_t BATCH_BUFFER_SIZE = 64 * 1024; // 64KB buffer std::array batchBuffer_{}; - std::span writeBuffer_; // Points to available write space + static thread_local std::span writeBuffer_; // Points to available write space std::span readBuffer_; // Points to data ready to flush std::chrono::steady_clock::time_point lastFlush_ = std::chrono::steady_clock::now(); diff --git a/src/libxrpl/basics/Log.cpp b/src/libxrpl/basics/Log.cpp index 7b548fc05a..bd5cbd8bf5 100644 --- a/src/libxrpl/basics/Log.cpp +++ b/src/libxrpl/basics/Log.cpp @@ -37,6 +37,7 @@ #include namespace ripple { +thread_local std::span Logs::writeBuffer_{}; namespace { constexpr auto FLUSH_INTERVAL = @@ -129,8 +130,8 @@ Logs::File::write(std::string_view text) Logs::Logs(beast::severities::Severity thresh) : thresh_(thresh) // default severity - , writeBuffer_( - batchBuffer_) // Initially, entire buffer is available for writing + // , writeBuffer_( + // batchBuffer_) // Initially, entire buffer is available for writing , readBuffer_(batchBuffer_.data(), 0) // No data ready to flush initially { }