From: David Reiss Date: Mon, 28 Jan 2008 20:46:53 +0000 (+0000) Subject: Thrift/Ruby: TSimpleServer closes its listen socket on an uncaught exception. X-Git-Tag: 0.2.0~1028 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=f09b8a01b1082f581442a08d6e28891e2495c0a6;p=common%2Fthrift.git Thrift/Ruby: TSimpleServer closes its listen socket on an uncaught exception. Submitted by William Morgan. Approved by Kevin Clark. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665444 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/lib/rb/lib/thrift/server/tserver.rb b/lib/rb/lib/thrift/server/tserver.rb index 9abfb307..d9ff621e 100644 --- a/lib/rb/lib/thrift/server/tserver.rb +++ b/lib/rb/lib/thrift/server/tserver.rb @@ -32,23 +32,26 @@ class TSimpleServer < TServer end def serve() - @serverTransport.listen() - while (true) - client = @serverTransport.accept() - trans = @transportFactory.getTransport(client) - prot = @protocolFactory.getProtocol(trans) - begin - while (true) - @processor.process(prot, prot) + begin + @serverTransport.listen() + while (true) + client = @serverTransport.accept() + trans = @transportFactory.getTransport(client) + prot = @protocolFactory.getProtocol(trans) + begin + while (true) + @processor.process(prot, prot) + end + rescue TTransportException, TProtocolException => ttx + #print ttx,"\n" + ensure + trans.close() end - rescue TTransportException, TProtocolException => ttx - #print ttx,"\n" - ensure - trans.close() end + ensure + @serverTransport.close() end end - end begin