Replace unneeded seqcst with relaxed on atomic operations (#4587)
This commit is contained in:
parent
cfab54511b
commit
c9d63204eb
|
@ -120,7 +120,7 @@ impl RpcSolPubSub for RpcSolPubSubImpl {
|
||||||
) {
|
) {
|
||||||
match param::<Pubkey>(&pubkey_str, "pubkey") {
|
match param::<Pubkey>(&pubkey_str, "pubkey") {
|
||||||
Ok(pubkey) => {
|
Ok(pubkey) => {
|
||||||
let id = self.uid.fetch_add(1, atomic::Ordering::SeqCst);
|
let id = self.uid.fetch_add(1, atomic::Ordering::Relaxed);
|
||||||
let sub_id = SubscriptionId::Number(id as u64);
|
let sub_id = SubscriptionId::Number(id as u64);
|
||||||
info!("account_subscribe: account={:?} id={:?}", pubkey, sub_id);
|
info!("account_subscribe: account={:?} id={:?}", pubkey, sub_id);
|
||||||
let sink = subscriber.assign_id(sub_id.clone()).unwrap();
|
let sink = subscriber.assign_id(sub_id.clone()).unwrap();
|
||||||
|
@ -158,7 +158,7 @@ impl RpcSolPubSub for RpcSolPubSubImpl {
|
||||||
) {
|
) {
|
||||||
match param::<Pubkey>(&pubkey_str, "pubkey") {
|
match param::<Pubkey>(&pubkey_str, "pubkey") {
|
||||||
Ok(pubkey) => {
|
Ok(pubkey) => {
|
||||||
let id = self.uid.fetch_add(1, atomic::Ordering::SeqCst);
|
let id = self.uid.fetch_add(1, atomic::Ordering::Relaxed);
|
||||||
let sub_id = SubscriptionId::Number(id as u64);
|
let sub_id = SubscriptionId::Number(id as u64);
|
||||||
info!("program_subscribe: account={:?} id={:?}", pubkey, sub_id);
|
info!("program_subscribe: account={:?} id={:?}", pubkey, sub_id);
|
||||||
let sink = subscriber.assign_id(sub_id.clone()).unwrap();
|
let sink = subscriber.assign_id(sub_id.clone()).unwrap();
|
||||||
|
@ -197,7 +197,7 @@ impl RpcSolPubSub for RpcSolPubSubImpl {
|
||||||
info!("signature_subscribe");
|
info!("signature_subscribe");
|
||||||
match param::<Signature>(&signature_str, "signature") {
|
match param::<Signature>(&signature_str, "signature") {
|
||||||
Ok(signature) => {
|
Ok(signature) => {
|
||||||
let id = self.uid.fetch_add(1, atomic::Ordering::SeqCst);
|
let id = self.uid.fetch_add(1, atomic::Ordering::Relaxed);
|
||||||
let sub_id = SubscriptionId::Number(id as u64);
|
let sub_id = SubscriptionId::Number(id as u64);
|
||||||
info!(
|
info!(
|
||||||
"signature_subscribe: signature={:?} id={:?}",
|
"signature_subscribe: signature={:?} id={:?}",
|
||||||
|
|
|
@ -460,7 +460,7 @@ mod test {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn points_written(&self) -> usize {
|
fn points_written(&self) -> usize {
|
||||||
return self.points_written.load(Ordering::SeqCst);
|
return self.points_written.load(Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -469,12 +469,12 @@ mod test {
|
||||||
assert!(!points.is_empty());
|
assert!(!points.is_empty());
|
||||||
|
|
||||||
self.points_written
|
self.points_written
|
||||||
.fetch_add(points.len(), Ordering::SeqCst);
|
.fetch_add(points.len(), Ordering::Relaxed);
|
||||||
|
|
||||||
info!(
|
info!(
|
||||||
"Writing {} points ({} total)",
|
"Writing {} points ({} total)",
|
||||||
points.len(),
|
points.len(),
|
||||||
self.points_written.load(Ordering::SeqCst)
|
self.points_written.load(Ordering::Relaxed)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -294,8 +294,10 @@ impl Bank {
|
||||||
bank.stakes = RwLock::new(parent.stakes.read().unwrap().clone());
|
bank.stakes = RwLock::new(parent.stakes.read().unwrap().clone());
|
||||||
bank.storage_accounts = RwLock::new(parent.storage_accounts.read().unwrap().clone());
|
bank.storage_accounts = RwLock::new(parent.storage_accounts.read().unwrap().clone());
|
||||||
|
|
||||||
bank.tick_height
|
bank.tick_height.store(
|
||||||
.store(parent.tick_height.load(Ordering::SeqCst), Ordering::SeqCst);
|
parent.tick_height.load(Ordering::Relaxed),
|
||||||
|
Ordering::Relaxed,
|
||||||
|
);
|
||||||
bank.ticks_per_slot = parent.ticks_per_slot;
|
bank.ticks_per_slot = parent.ticks_per_slot;
|
||||||
bank.epoch_schedule = parent.epoch_schedule;
|
bank.epoch_schedule = parent.epoch_schedule;
|
||||||
|
|
||||||
|
@ -391,7 +393,7 @@ impl Bank {
|
||||||
let mut hash = self.hash.write().unwrap();
|
let mut hash = self.hash.write().unwrap();
|
||||||
|
|
||||||
if *hash == Hash::default() {
|
if *hash == Hash::default() {
|
||||||
let collector_fees = self.collector_fees.load(Ordering::SeqCst) as u64;
|
let collector_fees = self.collector_fees.load(Ordering::Relaxed) as u64;
|
||||||
if collector_fees != 0 {
|
if collector_fees != 0 {
|
||||||
self.deposit(&self.collector_id, collector_fees);
|
self.deposit(&self.collector_id, collector_fees);
|
||||||
}
|
}
|
||||||
|
@ -588,8 +590,8 @@ impl Bank {
|
||||||
// assert!(!self.is_frozen());
|
// assert!(!self.is_frozen());
|
||||||
|
|
||||||
let current_tick_height = {
|
let current_tick_height = {
|
||||||
self.tick_height.fetch_add(1, Ordering::SeqCst);
|
self.tick_height.fetch_add(1, Ordering::Relaxed);
|
||||||
self.tick_height.load(Ordering::SeqCst) as u64
|
self.tick_height.load(Ordering::Relaxed) as u64
|
||||||
};
|
};
|
||||||
inc_new_counter_debug!("bank-register_tick-registered", 1);
|
inc_new_counter_debug!("bank-register_tick-registered", 1);
|
||||||
|
|
||||||
|
@ -1120,7 +1122,7 @@ impl Bank {
|
||||||
// tick_height is using an AtomicUSize because AtomicU64 is not yet a stable API.
|
// tick_height is using an AtomicUSize because AtomicU64 is not yet a stable API.
|
||||||
// Until we can switch to AtomicU64, fail if usize is not the same as u64
|
// Until we can switch to AtomicU64, fail if usize is not the same as u64
|
||||||
assert_eq!(std::usize::MAX, 0xFFFF_FFFF_FFFF_FFFF);
|
assert_eq!(std::usize::MAX, 0xFFFF_FFFF_FFFF_FFFF);
|
||||||
self.tick_height.load(Ordering::SeqCst) as u64
|
self.tick_height.load(Ordering::Relaxed) as u64
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return this bank's max_tick_height
|
/// Return this bank's max_tick_height
|
||||||
|
@ -1225,12 +1227,12 @@ impl Bank {
|
||||||
assert_eq!(self.ticks_per_slot, dbank.ticks_per_slot);
|
assert_eq!(self.ticks_per_slot, dbank.ticks_per_slot);
|
||||||
assert_eq!(self.parent_hash, dbank.parent_hash);
|
assert_eq!(self.parent_hash, dbank.parent_hash);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
self.tick_height.load(Ordering::SeqCst),
|
self.tick_height.load(Ordering::Relaxed),
|
||||||
dbank.tick_height.load(Ordering::SeqCst)
|
dbank.tick_height.load(Ordering::Relaxed)
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
self.is_delta.load(Ordering::SeqCst),
|
self.is_delta.load(Ordering::Relaxed),
|
||||||
dbank.is_delta.load(Ordering::SeqCst)
|
dbank.is_delta.load(Ordering::Relaxed)
|
||||||
);
|
);
|
||||||
|
|
||||||
let st = self.stakes.read().unwrap();
|
let st = self.stakes.read().unwrap();
|
||||||
|
|
|
@ -28,7 +28,7 @@ pub fn serialize_atomicusize<S>(x: &AtomicUsize, s: S) -> Result<S::Ok, S::Error
|
||||||
where
|
where
|
||||||
S: serde::Serializer,
|
S: serde::Serializer,
|
||||||
{
|
{
|
||||||
s.serialize_u64(x.load(Ordering::SeqCst) as u64)
|
s.serialize_u64(x.load(Ordering::Relaxed) as u64)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct BoolVisitor;
|
struct BoolVisitor;
|
||||||
|
@ -58,5 +58,5 @@ pub fn serialize_atomicbool<S>(x: &AtomicBool, s: S) -> Result<S::Ok, S::Error>
|
||||||
where
|
where
|
||||||
S: serde::Serializer,
|
S: serde::Serializer,
|
||||||
{
|
{
|
||||||
s.serialize_bool(x.load(Ordering::SeqCst))
|
s.serialize_bool(x.load(Ordering::Relaxed))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue