diff options
author | Jens Geyer <jensg@apache.org> | 2014-10-29 19:54:58 +0200 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2014-10-29 19:54:58 +0200 |
commit | cc15dff1274eebb8306e131530ef74e910f32ae9 (patch) | |
tree | aae1ec5300bebbad2179c01168bbf97d514cb114 | |
parent | fdd8d13bd4e82c9e3e73f72e5556f5921e351fa0 (diff) | |
download | thrift-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.go | 13 |
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. |