Add trivial improvements to transaction pool (#8572)

* Add trival improvements to transaction pool

* .

* Add trival improvements to transaction pool

* Update client/transaction-pool/graph/src/future.rs

* Update client/transaction-pool/graph/src/base_pool.rs

* Fix transaction_debug test

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
Liu-Cheng Xu
2021-04-09 19:37:40 +08:00
committed by GitHub
parent 9fa684f2a4
commit 7e59d172b8
9 changed files with 83 additions and 102 deletions
@@ -22,7 +22,7 @@ use std::{
};
use parking_lot::{RwLock, RwLockWriteGuard, RwLockReadGuard};
/// Something that can report it's size.
/// Something that can report its size.
pub trait Size {
fn size(&self) -> usize;
}
@@ -64,14 +64,14 @@ impl<K, V> TrackedMap<K, V> {
}
/// Lock map for read.
pub fn read<'a>(&'a self) -> TrackedMapReadAccess<'a, K, V> {
pub fn read(&self) -> TrackedMapReadAccess<K, V> {
TrackedMapReadAccess {
inner_guard: self.index.read(),
}
}
/// Lock map for write.
pub fn write<'a>(&'a self) -> TrackedMapWriteAccess<'a, K, V> {
pub fn write(&self) -> TrackedMapWriteAccess<K, V> {
TrackedMapWriteAccess {
inner_guard: self.index.write(),
bytes: &self.bytes,
@@ -90,7 +90,7 @@ where
K: Eq + std::hash::Hash
{
/// Lock map for read.
pub fn read<'a>(&'a self) -> TrackedMapReadAccess<'a, K, V> {
pub fn read(&self) -> TrackedMapReadAccess<K, V> {
TrackedMapReadAccess {
inner_guard: self.0.read(),
}
@@ -136,10 +136,10 @@ where
let new_bytes = val.size();
self.bytes.fetch_add(new_bytes as isize, AtomicOrdering::Relaxed);
self.length.fetch_add(1, AtomicOrdering::Relaxed);
self.inner_guard.insert(key, val).and_then(|old_val| {
self.inner_guard.insert(key, val).map(|old_val| {
self.bytes.fetch_sub(old_val.size() as isize, AtomicOrdering::Relaxed);
self.length.fetch_sub(1, AtomicOrdering::Relaxed);
Some(old_val)
old_val
})
}
@@ -186,4 +186,4 @@ mod tests {
assert_eq!(map.bytes(), 1);
assert_eq!(map.len(), 1);
}
}
}