From 51ae1b27b4e786807782b0c07b3485acdd0ff782 Mon Sep 17 00:00:00 2001 From: bel Date: Sat, 25 Mar 2023 10:13:25 -0600 Subject: [PATCH] on refresh, recreate raw too, because i dont wanna be leaking by not Closing on refresh --- src/device/input/input.go | 2 +- src/device/input/wrap/refresh.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/device/input/input.go b/src/device/input/input.go index c3ca210..c0d449f 100644 --- a/src/device/input/input.go +++ b/src/device/input/input.go @@ -13,8 +13,8 @@ type Input interface { } func New(ctx context.Context) Input { - src := raw.New(ctx) return wrap.New(ctx, func() button.Parser { + src := raw.New(ctx) return button.New(ctx, src) }) } diff --git a/src/device/input/wrap/refresh.go b/src/device/input/wrap/refresh.go index a2a5e9a..c4b3978 100644 --- a/src/device/input/wrap/refresh.go +++ b/src/device/input/wrap/refresh.go @@ -33,7 +33,10 @@ func NewRefresh(newWrap func() Wrap, ch <-chan os.Signal) *Refresh { return case sig := <-ch: log.Println("refreshing for", sig) - result.input = newWrap() + newInput := newWrap() + oldInput := result.input + result.input = newInput + oldInput.Close() } } }()