2
0
mirror of https://github.com/soheilhy/cmux.git synced 2024-09-19 18:45:48 +08:00

Cleanup code in cmux and bench_test.

This commit is a partial cherry pick of pull request #3, for code cleanup.
This commit is contained in:
Tamir Duberstein 2015-12-19 22:34:29 -05:00 committed by Soheil Hassas Yeganeh
parent 89dd8ce1fd
commit 563c371a98
2 changed files with 6 additions and 12 deletions

View File

@ -17,8 +17,6 @@ func (c *mockConn) Read(b []byte) (n int, err error) {
} }
func BenchmarkCMuxConn(b *testing.B) { func BenchmarkCMuxConn(b *testing.B) {
b.StopTimer()
benchHTTPPayload := make([]byte, 4096) benchHTTPPayload := make([]byte, 4096)
copy(benchHTTPPayload, []byte("GET http://www.w3.org/ HTTP/1.1")) copy(benchHTTPPayload, []byte("GET http://www.w3.org/ HTTP/1.1"))
@ -33,7 +31,7 @@ func BenchmarkCMuxConn(b *testing.B) {
} }
}() }()
b.StartTimer() b.ResetTimer()
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
c := &mockConn{ c := &mockConn{

14
cmux.go
View File

@ -109,14 +109,12 @@ func (m *cMux) Serve() error {
func (m *cMux) serve(c net.Conn) { func (m *cMux) serve(c net.Conn) {
muc := newMuxConn(c) muc := newMuxConn(c)
matched := false
for _, sl := range m.sls { for _, sl := range m.sls {
for _, s := range sl.ss { for _, s := range sl.ss {
matched = s(muc.sniffer()) matched := s(muc.sniffer())
muc.reset() muc.reset()
if matched { if matched {
select { select {
// TODO(soheil): threre is a possiblity of having unclosed connection.
case sl.l.connc <- muc: case sl.l.connc <- muc:
case <-sl.l.donec: case <-sl.l.donec:
c.Close() c.Close()
@ -126,12 +124,10 @@ func (m *cMux) serve(c net.Conn) {
} }
} }
if !matched { c.Close()
c.Close() err := ErrNotMatched{c: c}
err := ErrNotMatched{c: c} if !m.handleErr(err) {
if !m.handleErr(err) { m.root.Close()
m.root.Close()
}
} }
} }