I have the same problem with Java, reported here: https://issues.apache.org/jira/browse/THRIFT-4252
Its a problem for us, and would be great to be fixed. All the best, Mario On 27.02.2018 17:06, Gianni Ambrosio wrote: > Hi All, > I realized the previous link (THRIFT-2696) was related to Delphi (gosh!). C++ > implementation had the same problem but seems to be already fixed: > > https://github.com/apache/thrift/commit/1684c429501e9df9387cb518e660691f032d7926#diff-73a64b6e865fd1b207b30764b9e06033 > > Is it possible to open a ticket for C# too? > > Regards, > Gianni > > On 27/02/2018 14:09, Gianni Ambrosio wrote: >> Hi All, >> I was experiencing exacly the same problem reported here with Thrift 0.9.1: >> https://issues.apache.org/jira/browse/THRIFT-2696 >> >> So I moved to the latest thrift version (i.e. 0.11.0) but the problem is >> still there! >> >> I implemented a thrift server with TSimpleServer in C#: >> >> public class ThriftServer >> { >> public void start(){ >> Service.Processor processor = new Service.Processor(serviceHandler); >> TServerSocket serverTransport = new >> TServerSocket(ServiceConstants.ServicePort); >> server = new TSimpleServer(processor, serverTransport); >> workerThread = new Thread(new ThreadStart(run)); >> workerThread.Start(); >> } >> private void run(){ >> server.Serve(); >> } >> public void stop(){ >> server.Stop(); >> } >> } >> >> And here is the C++ client implementation: >> >> void ThriftClient::connect(const std::string& serverIp) { >> boost::shared_ptr<apache::thrift::transport::TTransport> socket(new >> apache::thrift::transport::TSocket(serverIp.c_str(), >> g_Service_constants.ServicePort)); >> transport = >> boost::make_shared<apache::thrift::transport::TBufferedTransport>(socket); >> transport->open(); >> client = >> boost::make_shared<ServiceClient>(boost::make_shared<apache::thrift::protocol::TBinaryProtocol>(transport)); >> } >> >> The problem is that when I close the C# application the application does not >> close. But in that state it closes as soon as I close the C++ client >> application. >> Debugging the C# application, server.Stop() is called but server.Serve() >> call does not exit unless the client has been disconnected. >> Since the above thrift ticket seems reporting exactly the same issue and it >> should be fixed in thrift 0.9.2, what's wrong in my code? >> >> Best regards, >> Gianni >> > > Viele Gruesse, Mario Emmenlauer -- BioDataAnalysis GmbH, Mario Emmenlauer Tel. Buero: +49-89-74677203 Balanstr. 43 mailto: memmenlauer * biodataanalysis.de D-81669 München http://www.biodataanalysis.de/
