From 3235ccd9538363b7063e168b7ac2044c98a2e0b9 Mon Sep 17 00:00:00 2001 From: cjwcommuny Date: Tue, 11 Oct 2022 14:57:58 +0800 Subject: [PATCH] time: panic in release mode when `mark_pending` called when the timer entry is deregistered or in pending fire --- tokio/src/runtime/time/entry.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tokio/src/runtime/time/entry.rs b/tokio/src/runtime/time/entry.rs index 3b8907add7d..96284122e2c 100644 --- a/tokio/src/runtime/time/entry.rs +++ b/tokio/src/runtime/time/entry.rs @@ -172,7 +172,9 @@ impl StateCell { let mut cur_state = self.state.load(Ordering::Relaxed); loop { - debug_assert!(cur_state < STATE_MIN_VALUE); + // improve the error message for things like + // https://github.com/tokio-rs/tokio/issues/3675 + assert!(cur_state < STATE_MIN_VALUE, "mark_pending called when the timer entry is deregistered or in pending fire"); if cur_state > not_after { break Err(cur_state);