Skip to content

Commit

Permalink
refactor(gateway): remove ratelimiter sleep from new
Browse files Browse the repository at this point in the history
  • Loading branch information
vilgotf committed Jul 1, 2023
1 parent d4145c8 commit 7f5b7bf
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions twilight-gateway/src/ratelimiter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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() {
Expand All @@ -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 {
Expand All @@ -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 {
Expand All @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion twilight-gateway/src/shard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 7f5b7bf

Please sign in to comment.