https://github.com/anza-xyz/agave/pull/5323 https://github.com/anza-xyz/agave/pull/5323/commits/b8444343075a96f7472dd3b18490233cd0aeb9a2 https://github.com/anza-xyz/agave/pull/5323/commits/28ec738e2282958f5b85bf6fd515ac31b099f95e --- unified-scheduler-pool/src/lib.rs.orig 2025-05-20 14:31:43.222181000 +0200 +++ unified-scheduler-pool/src/lib.rs 2025-05-20 14:31:51.894607000 +0200 @@ -12,6 +12,8 @@ //! Refer to [`PooledScheduler`] doc comment for general overview of scheduler state transitions //! regarding to pooling and the actual use. +use std::ops::DerefMut; + #[cfg(feature = "dev-context-only-utils")] use qualifier_attr::qualifiers; use { @@ -326,10 +328,10 @@ where // // Note that this critical section could block the latency-sensitive replay // code-path via ::take_scheduler(). - #[allow(unstable_name_collisions)] - idle_inners.extend(scheduler_inners.extract_if(|(_inner, pooled_at)| { - now.duration_since(*pooled_at) > max_pooling_duration - })); + idle_inners.extend(MakeExtractIf::extract_if( + scheduler_inners.deref_mut(), + |(_inner, pooled_at)| now.duration_since(*pooled_at) > max_pooling_duration, + )); drop(scheduler_inners); let idle_inner_count = idle_inners.len(); @@ -357,8 +359,8 @@ where let Ok(mut timeout_listeners) = scheduler_pool.timeout_listeners.lock() else { break; }; - #[allow(unstable_name_collisions)] - expired_listeners.extend(timeout_listeners.extract_if( + expired_listeners.extend(MakeExtractIf::extract_if( + timeout_listeners.deref_mut(), |(_callback, registered_at)| { now.duration_since(*registered_at) > timeout_duration },