From a743c7cb1eb3750dcd2cc40d109a7fee02ec9236 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Fri, 7 Jan 2022 13:50:27 +0200 Subject: [PATCH] multi: add quit channel to sessionRpcServer --- session_rpcserver.go | 12 ++++++++++++ terminal.go | 2 ++ 2 files changed, 14 insertions(+) diff --git a/session_rpcserver.go b/session_rpcserver.go index 88f78d5a..785a55e3 100644 --- a/session_rpcserver.go +++ b/session_rpcserver.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "strings" + "sync" "time" "github.com/btcsuite/btcd/btcec" @@ -20,6 +21,17 @@ type sessionRpcServer struct { db *session.DB sessionServer *session.Server + + quit chan struct{} + + stopOnce sync.Once +} + +// stop cleans up any sessionRpcServer resources. +func (s *sessionRpcServer) stop() { + s.stopOnce.Do(func() { + close(s.quit) + }) } // AddSession adds and starts a new Terminal Connect session. diff --git a/terminal.go b/terminal.go index 943696d2..ae170439 100644 --- a/terminal.go +++ b/terminal.go @@ -227,6 +227,7 @@ func (g *LightningTerminal) Run() error { basicAuth: g.rpcProxy.basicAuth, db: g.sessionDB, sessionServer: g.sessionServer, + quit: make(chan struct{}), } // Now start up all previously created sessions. @@ -838,6 +839,7 @@ func (g *LightningTerminal) shutdown() error { } } + g.sessionRpcServer.stop() if err := g.sessionDB.Close(); err != nil { log.Errorf("Error closing session DB: %v", err) returnErr = err