diff --git a/pkg/streamcontrol/kick/kick.go b/pkg/streamcontrol/kick/kick.go index 0b56fd3..9ceb3c9 100644 --- a/pkg/streamcontrol/kick/kick.go +++ b/pkg/streamcontrol/kick/kick.go @@ -16,6 +16,8 @@ type Client interface { } type Kick struct { + CloseCtx context.Context + CloseFn context.CancelFunc Channel *kickcom.ChannelV1 Client Client ChatHandler *ChatHandler @@ -44,7 +46,10 @@ func New( return nil, fmt.Errorf("unable to obtain channel info: %w", err) } + ctx, closeFn := context.WithCancel(ctx) k := &Kick{ + CloseCtx: ctx, + CloseFn: closeFn, Client: client, Channel: channel, SaveCfgFn: saveCfgFn, @@ -60,6 +65,7 @@ func New( } func (k *Kick) Close() error { + k.CloseFn() return nil } func (k *Kick) SetTitle(ctx context.Context, title string) error { diff --git a/pkg/streamcontrol/twitch/twitch.go b/pkg/streamcontrol/twitch/twitch.go index 4f20462..d8f095d 100644 --- a/pkg/streamcontrol/twitch/twitch.go +++ b/pkg/streamcontrol/twitch/twitch.go @@ -68,9 +68,9 @@ func New( return nil, fmt.Errorf("the function GetOAuthListenPorts returned zero ports") } - closeCtx, closeFn := context.WithCancel(ctx) + ctx, closeFn := context.WithCancel(ctx) t := &Twitch{ - closeCtx: closeCtx, + closeCtx: ctx, closeFn: closeFn, config: cfg, saveCfgFn: saveCfgFn,