From 5abfa7f05a2e2245b2abb44adc31ffadcd6d7b99 Mon Sep 17 00:00:00 2001 From: Matthias Geier Date: Sun, 10 Dec 2023 17:48:04 +0100 Subject: [PATCH] SPSC: Relaxed load if value is only written in same thread --- src/bounded/spsc.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bounded/spsc.rs b/src/bounded/spsc.rs index 915cecb..d2b92a4 100644 --- a/src/bounded/spsc.rs +++ b/src/bounded/spsc.rs @@ -156,7 +156,7 @@ impl Queue { } // Return an error if the queue is full. - let write = self.write.load(Acquire); + let write = self.write.load(Relaxed); if write.wrapping_sub(self.read_copy.get()) == self.buffer.size() { self.read_copy.set(self.read.load(Acquire)); if write.wrapping_sub(self.read_copy.get()) == self.buffer.size() { @@ -172,7 +172,7 @@ impl Queue { fn consume(&self) -> Result { // Return an error if the queue is empty. - let read = self.read.load(Acquire); + let read = self.read.load(Relaxed); if read == self.write_copy.get() { self.write_copy.set(self.write.load(Acquire)); if read == self.write_copy.get() {