diff --git a/session.go b/session.go index 8c32c19..8e8f3f0 100644 --- a/session.go +++ b/session.go @@ -102,12 +102,12 @@ func (s *Session) Close() error { case <-s.die: return errors.New(errBrokenPipe) default: - close(s.die) for k := range s.streams { s.streams[k].Close() } s.sendFrame(newFrame(cmdTerminate, 0)) s.conn.Close() + close(s.die) } return nil } @@ -130,7 +130,7 @@ func (s *Session) NumStreams() int { } // notify the session that a session has closed -func (s *Session) streamActiveClose(sid uint32) { +func (s *Session) streamClosed(sid uint32) { s.chActiveClose <- sid } diff --git a/stream.go b/stream.go index 2f48a80..cf297fd 100644 --- a/stream.go +++ b/stream.go @@ -103,7 +103,7 @@ func (s *Stream) Close() error { return errors.New(errBrokenPipe) default: close(s.die) - s.sess.streamActiveClose(s.id) + s.sess.streamClosed(s.id) s.sess.sendFrame(newFrame(cmdRST, s.id)) } return nil