THRIFT-2791 Allowing use of buffered sockets in go server
Client: Go
Patch: Craig Peterson
This closes #249
diff --git a/lib/go/thrift/server_socket.go b/lib/go/thrift/server_socket.go
index 4c80714..936eb2e 100644
--- a/lib/go/thrift/server_socket.go
+++ b/lib/go/thrift/server_socket.go
@@ -33,6 +33,10 @@
// Protects the interrupted value to make it thread safe.
mu sync.RWMutex
interrupted bool
+
+ //Size of buffer to use for socket. Defaults to 1024.
+ //Set to 0 to disable bufferring server transport altogether.
+ BufferSize int
}
func NewTServerSocket(listenAddr string) (*TServerSocket, error) {
@@ -44,7 +48,7 @@
if err != nil {
return nil, err
}
- return &TServerSocket{addr: addr, clientTimeout: clientTimeout}, nil
+ return &TServerSocket{addr: addr, clientTimeout: clientTimeout, BufferSize: 1024}, nil
}
func (p *TServerSocket) Listen() error {
@@ -74,7 +78,12 @@
if err != nil {
return nil, NewTTransportExceptionFromError(err)
}
- return NewTSocketFromConnTimeout(conn, p.clientTimeout), nil
+ var trans TTransport
+ trans = NewTSocketFromConnTimeout(conn, p.clientTimeout)
+ if p.BufferSize != 0 {
+ trans = NewTBufferedTransport(trans, p.BufferSize)
+ }
+ return trans, nil
}
// Checks whether the socket is listening.