summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2014-10-29 19:54:58 +0200
committerJens Geyer <jensg@apache.org>2014-10-29 19:54:58 +0200
commitcc15dff1274eebb8306e131530ef74e910f32ae9 (patch)
treeaae1ec5300bebbad2179c01168bbf97d514cb114
parentfdd8d13bd4e82c9e3e73f72e5556f5921e351fa0 (diff)
downloadthrift-cc15dff1274eebb8306e131530ef74e910f32ae9.tar.gz
THRIFT-2791 Allowing use of buffered sockets in go server
Client: Go Patch: Craig Peterson This closes #249
-rw-r--r--lib/go/thrift/server_socket.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/go/thrift/server_socket.go b/lib/go/thrift/server_socket.go
index 4c80714da..936eb2e7d 100644
--- a/lib/go/thrift/server_socket.go
+++ b/lib/go/thrift/server_socket.go
@@ -33,6 +33,10 @@ type TServerSocket struct {
// 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 @@ func NewTServerSocketTimeout(listenAddr string, clientTimeout time.Duration) (*T
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 @@ func (p *TServerSocket) Accept() (TTransport, error) {
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.