Hello,
I'm working with C++ Thrift and I'm using TThreadedServer with 
TBinaryProtocolFactory and TBufferedTransportFactory.
When a new connection is received in accept, a task is created and executed as 
a runnable.
When the connection with the client is broken for some reason (I don't know 
whether it received a RST but I suppose so), the following line makes the 
thread die:

!input_->getTransport()->peek()

I found the problem occurs inside TBufferTransports.h in method
bool peek()
in the following line:
setReadBuffer(rBuf_.get(), transport_->read(rBuf_.get(), rBufSize_));

I suppose this is because the thread is getting a broken pipe signal that is 
not properly handled but I would like to ask the list whether this makes sense 
and how this could be solved.

Thanks,
Rodolfo





Reply via email to