about summary refs log tree commit diff
path: root/pkg/discord/gateway/heartbeat.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/discord/gateway/heartbeat.go')
-rw-r--r--pkg/discord/gateway/heartbeat.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/pkg/discord/gateway/heartbeat.go b/pkg/discord/gateway/heartbeat.go
index a8f793d..1df753a 100644
--- a/pkg/discord/gateway/heartbeat.go
+++ b/pkg/discord/gateway/heartbeat.go
@@ -50,7 +50,13 @@ func (h *HeartbeatImpl) heartbeatRoutine(interval time.Duration) {
 
 	// REF: heartbeat_interval * jitter
 	jitter := rand.Intn(int(interval))
-	time.Sleep(time.Duration(jitter))
+
+	select {
+	case <-time.After(time.Duration(jitter)):
+	case <-h.ctx.Done():
+		h.logger.Debug().Msg("heartbeat routine stopped before jitter heartbeat")
+		return
+	}
 
 	ticker := time.NewTicker(interval)
 	defer ticker.Stop()