summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@yahooinc.com>2022-04-27 13:20:54 +0000
committerHåvard Pettersen <havardpe@yahooinc.com>2022-04-27 13:20:54 +0000
commit72d4d2214b04a00edc4fbfd225448a1492bf8b62 (patch)
tree24269b6fe19f863c4e09daef15d53d73d3dc57e6 /searchlib
parentd1be606eb7b3cc5a77ec171890cf002be8c7ba88 (diff)
use atomics for compression settings
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/common/packets.h19
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); }
};
//==========================================================================