Additional instrumentation around global counter events.
This commit is contained in:
@@ -150,7 +150,7 @@ impl<F: Fn(u64) -> Result + Sync> State<F> {
|
|||||||
.remove(index)
|
.remove(index)
|
||||||
.expect("sequence number at index must be removed");
|
.expect("sequence number at index must be removed");
|
||||||
|
|
||||||
debug_assert!(removed == id, "sequence number removed must match id");
|
debug_assert_eq!(removed, id, "sequence number removed must match id");
|
||||||
|
|
||||||
// release only occurs when the oldest value retires
|
// release only occurs when the oldest value retires
|
||||||
if index != 0 {
|
if index != 0 {
|
||||||
@@ -160,6 +160,8 @@ impl<F: Fn(u64) -> Result + Sync> State<F> {
|
|||||||
// release occurs for the maximum retired value
|
// release occurs for the maximum retired value
|
||||||
let release = if self.pending.is_empty() { self.dispatched } else { id };
|
let release = if self.pending.is_empty() { self.dispatched } else { id };
|
||||||
|
|
||||||
|
debug_assert!(release >= id, "sequence number released must not be less than id");
|
||||||
|
|
||||||
(self.release)(release).expect("release callback should not error");
|
(self.release)(release).expect("release callback should not error");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,12 +72,14 @@ impl Data {
|
|||||||
#[inline]
|
#[inline]
|
||||||
pub(super) fn pending_count(&self) -> Range<u64> { self.counter.range() }
|
pub(super) fn pending_count(&self) -> Range<u64> { self.counter.range() }
|
||||||
|
|
||||||
|
#[tracing::instrument(name = "retire", level = "debug", skip(sender))]
|
||||||
fn handle_retire(sender: &Sender<u64>, count: u64) -> Result {
|
fn handle_retire(sender: &Sender<u64>, count: u64) -> Result {
|
||||||
let _prev = sender.send_replace(count);
|
let _prev = sender.send_replace(count);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tracing::instrument(name = "dispatch", level = "debug", skip(db, global))]
|
||||||
fn store_count(db: &Arc<Database>, global: &Arc<Map>, count: u64) -> Result {
|
fn store_count(db: &Arc<Database>, global: &Arc<Map>, count: u64) -> Result {
|
||||||
let _cork = db.cork();
|
let _cork = db.cork();
|
||||||
global.insert(COUNTER, count.to_be_bytes());
|
global.insert(COUNTER, count.to_be_bytes());
|
||||||
|
|||||||
Reference in New Issue
Block a user