diff --git a/acceptor.go b/acceptor.go index 968be9efb..da4cd9bb0 100644 --- a/acceptor.go +++ b/acceptor.go @@ -144,6 +144,13 @@ func (a *Acceptor) Stop() { session.stop() } a.sessionGroup.Wait() + + for sessionID := range a.sessions { + err := UnregisterSession(sessionID) + if err != nil { + return + } + } } // RemoteAddr gets remote IP address for a given session. diff --git a/initiator.go b/initiator.go index b8735e388..eeff30fc0 100644 --- a/initiator.go +++ b/initiator.go @@ -74,14 +74,14 @@ func (i *Initiator) Stop() { } close(i.stopChan) + i.wg.Wait() + for sessionID := range i.sessionSettings { err := UnregisterSession(sessionID) if err != nil { return } } - - i.wg.Wait() } // NewInitiator creates and initializes a new Initiator.