metrics: fix blocking_threads count (#6551)

This commit is contained in:
Conrad Ludgate
2024-05-25 22:49:17 +01:00
committed by GitHub
parent 0a85a9662d
commit 2890d0c3db
3 changed files with 13 additions and 2 deletions

View File

@@ -8,7 +8,10 @@ impl Handle {
}
pub(crate) fn num_blocking_threads(&self) -> usize {
self.blocking_spawner.num_threads()
// workers are currently spawned using spawn_blocking
self.blocking_spawner
.num_threads()
.saturating_sub(self.num_workers())
}
pub(crate) fn num_idle_blocking_threads(&self) -> usize {

View File

@@ -8,7 +8,10 @@ impl Handle {
}
pub(crate) fn num_blocking_threads(&self) -> usize {
self.blocking_spawner.num_threads()
// workers are currently spawned using spawn_blocking
self.blocking_spawner
.num_threads()
.saturating_sub(self.num_workers())
}
pub(crate) fn num_idle_blocking_threads(&self) -> usize {

View File

@@ -31,6 +31,11 @@ fn num_blocking_threads() {
assert_eq!(0, rt.metrics().num_blocking_threads());
let _ = rt.block_on(rt.spawn_blocking(move || {}));
assert_eq!(1, rt.metrics().num_blocking_threads());
let rt = threaded();
assert_eq!(0, rt.metrics().num_blocking_threads());
let _ = rt.block_on(rt.spawn_blocking(move || {}));
assert_eq!(1, rt.metrics().num_blocking_threads());
}
#[test]