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) {