diff --git a/twilight-gateway/src/ratelimiter.rs b/twilight-gateway/src/ratelimiter.rs index bb88d21424e..5bfc99bb6ed 100644 --- a/twilight-gateway/src/ratelimiter.rs +++ b/twilight-gateway/src/ratelimiter.rs @@ -37,13 +37,13 @@ pub struct CommandRatelimiter { impl CommandRatelimiter { /// Create a new ratelimiter with some capacity reserved for heartbeating. - pub(crate) async fn new(heartbeat_interval: Duration) -> Self { + pub(crate) fn new(heartbeat_interval: Duration) -> Self { let allotted = nonreserved_commands_per_reset(heartbeat_interval); let mut delay = Box::pin(sleep(Duration::ZERO)); // Hack to register the timer. - (&mut delay).await; + delay.as_mut().reset(Instant::now()); Self { delay, @@ -180,7 +180,7 @@ mod tests { #[tokio::test(start_paused = true)] async fn full_reset() { - let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL).await; + let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL); assert_eq!(ratelimiter.available(), ratelimiter.max()); for _ in 0..ratelimiter.max() { @@ -199,7 +199,7 @@ mod tests { #[tokio::test(start_paused = true)] async fn half_reset() { - let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL).await; + let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL); assert_eq!(ratelimiter.available(), ratelimiter.max()); for _ in 0..ratelimiter.max() / 2 { @@ -226,7 +226,7 @@ mod tests { #[tokio::test(start_paused = true)] async fn constant_capacity() { - let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL).await; + let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL); let max = ratelimiter.max(); for _ in 0..max { @@ -240,7 +240,7 @@ mod tests { #[tokio::test(start_paused = true)] async fn spurious_poll() { - let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL).await; + let mut ratelimiter = CommandRatelimiter::new(HEARTBEAT_INTERVAL); for _ in 0..ratelimiter.max() { ratelimiter.acquire().await; diff --git a/twilight-gateway/src/shard.rs b/twilight-gateway/src/shard.rs index 1fde728c93f..84e35c4d08f 100644 --- a/twilight-gateway/src/shard.rs +++ b/twilight-gateway/src/shard.rs @@ -1062,7 +1062,7 @@ impl Shard { tracing::debug!(?heartbeat_interval, ?jitter, "received hello"); if self.config().ratelimit_messages() { - self.ratelimiter = Some(CommandRatelimiter::new(heartbeat_interval).await); + self.ratelimiter = Some(CommandRatelimiter::new(heartbeat_interval)); } let mut interval = time::interval_at(Instant::now() + jitter, heartbeat_interval);