commit 4d806b7

Hubert Hirtz  ·  2020-08-19 13:17:53 +0000 UTC
parent cf883fc
Properly close everything in case of error
2 files changed,  +9, -0
M app.go
M app.go
+3, -0
 1@@ -36,6 +36,7 @@ func NewApp(cfg Config) (app *App, err error) {
 2 	app.win.AddLine(ui.Home, ui.NewLineNow("--", fmt.Sprintf("Connecting to %s...", cfg.Addr)))
 3 	conn, err = tls.Dial("tcp", cfg.Addr, nil)
 4 	if err != nil {
 5+		app.win.Close()
 6 		return
 7 	}
 8 
 9@@ -51,6 +52,8 @@ func NewApp(cfg Config) (app *App, err error) {
10 		Debug:    cfg.Debug,
11 	})
12 	if err != nil {
13+		app.win.Close()
14+		_ = conn.Close()
15 		return
16 	}
17 
+6, -0
 1@@ -214,8 +214,14 @@ func (s *Session) Running() bool {
 2 }
 3 
 4 func (s *Session) Stop() {
 5+	if !s.Running() {
 6+		return
 7+	}
 8 	s.running.Store(false)
 9 	_ = s.conn.Close()
10+	close(s.acts)
11+	close(s.evts)
12+	close(s.msgs)
13 }
14 
15 func (s *Session) Poll() (events <-chan Event) {