From 5469fdccb3bb390ef75cdbc114684f76299e7471 Mon Sep 17 00:00:00 2001 From: Carlos A Becker Date: Mon, 24 Oct 2022 15:54:13 -0300 Subject: [PATCH 1/2] fix: goroutine leak Signed-off-by: Carlos A Becker --- bubbletea/tea.go | 1 + 1 file changed, 1 insertion(+) diff --git a/bubbletea/tea.go b/bubbletea/tea.go index a4fe896..3b47293 100644 --- a/bubbletea/tea.go +++ b/bubbletea/tea.go @@ -77,6 +77,7 @@ func MiddlewareWithProgramHandler(bth ProgramHandler, cp termenv.Profile) wish.M case <-s.Context().Done(): if p != nil { p.Quit() + return } case w := <-windowChanges: if p != nil { From 1c09a5b51ca56037b8721074c122504b36a57973 Mon Sep 17 00:00:00 2001 From: Carlos A Becker Date: Tue, 25 Oct 2022 08:20:21 -0300 Subject: [PATCH 2/2] fix: why even an error channel Signed-off-by: Carlos A Becker --- bubbletea/tea.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/bubbletea/tea.go b/bubbletea/tea.go index 3b47293..5b66405 100644 --- a/bubbletea/tea.go +++ b/bubbletea/tea.go @@ -67,7 +67,6 @@ func MiddlewareWithProgramHandler(bth ProgramHandler, cp termenv.Profile) wish.M return func(sh ssh.Handler) ssh.Handler { lipgloss.SetColorProfile(cp) return func(s ssh.Session) { - errc := make(chan error, 1) p := bth(s) if p != nil { _, windowChanges, _ := s.Pty() @@ -83,14 +82,12 @@ func MiddlewareWithProgramHandler(bth ProgramHandler, cp termenv.Profile) wish.M if p != nil { p.Send(tea.WindowSizeMsg{Width: w.Width, Height: w.Height}) } - case err := <-errc: - if err != nil { - log.Print(err) - } } } }() - errc <- p.Start() + if err := p.Start(); err != nil { + log.Print("app exit with error:", err) + } // p.Kill() will force kill the program if it's still running, // and restore the terminal to its original state in case of a // tui crash