@@ -213,11 +213,12 @@ func (h *Hub) registerSubscriber(ctx context.Context, w http.ResponseWriter, r *
213213
214214 s .SetTopics (topics , privateTopics )
215215
216- h .dispatchSubscriptionUpdate (ctx , s , true )
216+ addCtx := context .WithoutCancel (ctx )
217+ h .dispatchSubscriptionUpdate (addCtx , s , true )
217218
218- if err := h .transport .AddSubscriber (ctx , s ); err != nil {
219+ if err := h .transport .AddSubscriber (addCtx , s ); err != nil {
219220 http .Error (w , http .StatusText (http .StatusServiceUnavailable ), http .StatusServiceUnavailable )
220- h .dispatchSubscriptionUpdate (ctx , s , false )
221+ h .dispatchSubscriptionUpdate (addCtx , s , false )
221222
222223 if h .logger .Enabled (ctx , slog .LevelError ) {
223224 h .logger .LogAttrs (ctx , slog .LevelError , "Unable to add subscriber" , slog .Any ("error" , err ))
@@ -331,6 +332,8 @@ func (h *Hub) shutdown(ctx context.Context, s *LocalSubscriber) {
331332 // Notify that the client is closing the connection
332333 s .Disconnect ()
333334
335+ ctx = context .WithoutCancel (ctx )
336+
334337 if err := h .transport .RemoveSubscriber (ctx , s ); err != nil && h .logger .Enabled (ctx , slog .LevelError ) {
335338 h .logger .LogAttrs (ctx , slog .LevelError , "Failed to remove subscriber on shutdown" , slog .Any ("error" , err ))
336339 }
0 commit comments