From f09b8a01b1082f581442a08d6e28891e2495c0a6 Mon Sep 17 00:00:00 2001 From: David Reiss Date: Mon, 28 Jan 2008 20:46:53 +0000 Subject: [PATCH] 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 --- lib/rb/lib/thrift/server/tserver.rb | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) 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 -- 2.17.1