Pool cleanups, readd wait for TCP

This commit is contained in:
Miek Gieben 2014-01-05 16:29:07 +00:00
parent 05ace47df8
commit ac2ee587b1
2 changed files with 5 additions and 4 deletions

View File

@ -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)

View File

@ -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 {