From ac2ee587b14b41899fac57b88ae3ef47dffe7358 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Sun, 5 Jan 2014 16:29:07 +0000 Subject: [PATCH] Pool cleanups, readd wait for TCP --- pool.go | 6 +++--- server.go | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pool.go b/pool.go index b89b0018..f860aa7f 100644 --- a/pool.go +++ b/pool.go @@ -12,9 +12,9 @@ type queued struct { buf []byte } -func pool(size int) (get, give chan []byte) { - get = make(chan []byte, 400) // TODO(miek): this number is arbitrary - give = make(chan []byte, 400) +func pool(size, bufsize int) (get, give chan []byte) { + get = make(chan []byte, bufsize) + give = make(chan []byte, bufsize) go func() { q := new(list.List) diff --git a/server.go b/server.go index c93f271d..86487967 100644 --- a/server.go +++ b/server.go @@ -227,7 +227,7 @@ func (srv *Server) ListenAndServe() error { srv.UDPSize = MinMsgSize } if srv.Pool { - srv.get, srv.give = pool(srv.UDPSize) + srv.get, srv.give = pool(srv.UDPSize, 400) // Arbitrary number. } switch srv.Net { case "tcp", "tcp4", "tcp6": @@ -361,6 +361,7 @@ Exit: } func (srv *Server) readTCP(conn *net.TCPConn, timeout time.Duration) ([]byte, error) { + conn.SetReadDeadline(time.Now().Add(timeout)) l := make([]byte, 2) n, err := conn.Read(l) if err != nil || n != 2 {