From 74f70a5c2ccb229142b7416fe33d5cba246042c6 Mon Sep 17 00:00:00 2001 From: Paul Masurel Date: Wed, 23 Jan 2019 13:21:31 +0900 Subject: [PATCH] 32bits platforms --- src/indexer/stamper.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/indexer/stamper.rs b/src/indexer/stamper.rs index 7713e6c75..38933e727 100644 --- a/src/indexer/stamper.rs +++ b/src/indexer/stamper.rs @@ -28,20 +28,20 @@ mod archicture_impl { use std::sync::atomic::Ordering; /// Under other architecture, we rely on a mutex. - use std::sync::Mutex; + use std::sync::RwLock; #[derive(Default)] - pub struct AtomicU64Ersatz(Mutex); + pub struct AtomicU64Ersatz(RwLock); impl AtomicU64Ersatz { pub fn new(first_opstamp: u64) -> AtomicU64Ersatz { - AtomicU64Ersatz(AtomicUsize::new(first_opstamp)) + AtomicU64Ersatz(RwLock::new(first_opstamp)) } - pub fn fetch_add(&self, val: u64, _order: Ordering) -> u64 { - let lock = self.0.lock().unwrap(); + pub fn fetch_add(&self, incr: u64, _order: Ordering) -> u64 { + let mut lock = self.0.write().unwrap(); let previous_val = *lock; - *lock = previous_val + 1; + *lock = previous_val + incr; previous_val } }