Skip to content

Commit c23735d

Browse files
authored
runtime: fix TOCTOU issue when decreasing num_idle_threads (#7918)
1 parent d83921b commit c23735d

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

tokio/src/runtime/blocking/pool.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -568,13 +568,13 @@ impl Inner {
568568
// Thread exit
569569
self.metrics.dec_num_threads();
570570

571-
// num_idle should now be tracked exactly, panic
571+
// `num_idle_threads` should now be tracked exactly, panic
572572
// with a descriptive message if it is not the
573573
// case.
574574
let prev_idle = self.metrics.dec_num_idle_threads();
575-
assert!(
576-
prev_idle >= self.metrics.num_idle_threads(),
577-
"num_idle_threads underflowed on thread exit"
575+
assert_ne!(
576+
prev_idle, 0,
577+
"`num_idle_threads` underflowed on thread exit"
578578
);
579579

580580
if shared.shutdown && self.metrics.num_threads() == 0 {

0 commit comments

Comments
 (0)