diff --git a/frame.go b/frame.go index b2948ae..8520fb6 100644 --- a/frame.go +++ b/frame.go @@ -14,7 +14,7 @@ const ( // cmds cmdRST // stream close cmdPSH // data push cmdNOP // no operation - cmdTerminate // terminate session + cmdTerminate // explict terminate session ) const ( diff --git a/session.go b/session.go index 5d13ae9..ab16437 100644 --- a/session.go +++ b/session.go @@ -118,7 +118,6 @@ func (s *Session) Close() error { return errors.New(errBrokenPipe) default: close(s.die) - s.conn.Close() s.mu.Lock() defer s.mu.Unlock() for k := range s.streams { @@ -127,6 +126,7 @@ func (s *Session) Close() error { f := newFrame(cmdTerminate, 0) bts, _ := f.MarshalBinary() s.lw.Write(bts) + s.conn.Close() } return nil }