diff options
author | Håvard Pettersen <havardpe@yahooinc.com> | 2022-04-27 13:20:54 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@yahooinc.com> | 2022-04-27 13:20:54 +0000 |
commit | 72d4d2214b04a00edc4fbfd225448a1492bf8b62 (patch) | |
tree | 24269b6fe19f863c4e09daef15d53d73d3dc57e6 /searchlib | |
parent | d1be606eb7b3cc5a77ec171890cf002be8c7ba88 (diff) |
use atomics for compression settings
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/common/packets.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/searchlib/src/vespa/searchlib/common/packets.h b/searchlib/src/vespa/searchlib/common/packets.h index 07c942a997b..f13cbe24ce4 100644 --- a/searchlib/src/vespa/searchlib/common/packets.h +++ b/searchlib/src/vespa/searchlib/common/packets.h @@ -5,6 +5,7 @@ #include <vespa/vespalib/util/compressionconfig.h> #include <vespa/vespalib/util/memory.h> #include <vector> +#include <atomic> class FNET_DataBuffer; @@ -15,21 +16,21 @@ using vespalib::string; class FS4PersistentPacketStreamer { using CompressionConfig = vespalib::compression::CompressionConfig; - unsigned int _compressionLimit; - unsigned int _compressionLevel; - CompressionConfig::Type _compressionType; + std::atomic<unsigned int> _compressionLimit; + std::atomic<unsigned int> _compressionLevel; + std::atomic<CompressionConfig::Type> _compressionType; public: static FS4PersistentPacketStreamer Instance; FS4PersistentPacketStreamer(); - void SetCompressionLimit(unsigned int limit) { _compressionLimit = limit; } - void SetCompressionLevel(unsigned int level) { _compressionLevel = level; } - void SetCompressionType(CompressionConfig::Type compressionType) { _compressionType = compressionType; } - CompressionConfig::Type getCompressionType() const { return _compressionType; } - uint32_t getCompressionLimit() const { return _compressionLimit; } - uint32_t getCompressionLevel() const { return _compressionLevel; } + void SetCompressionLimit(unsigned int limit) { _compressionLimit.store(limit, std::memory_order_relaxed); } + void SetCompressionLevel(unsigned int level) { _compressionLevel.store(level, std::memory_order_relaxed); } + void SetCompressionType(CompressionConfig::Type compressionType) { _compressionType.store(compressionType, std::memory_order_relaxed); } + CompressionConfig::Type getCompressionType() const { return _compressionType.load(std::memory_order_relaxed); } + uint32_t getCompressionLimit() const { return _compressionLimit.load(std::memory_order_relaxed); } + uint32_t getCompressionLevel() const { return _compressionLevel.load(std::memory_order_relaxed); } }; //========================================================================== |