From c12c5a8bf8b450500e1d0224a3015c40ebc56c26 Mon Sep 17 00:00:00 2001 From: Matej Sekoranja Date: Fri, 4 Mar 2011 09:25:32 +0100 Subject: [PATCH] memory leak fixed --- pvAccessApp/remote/blockingTCPTransport.cpp | 11 ++++++----- pvAccessApp/server/serverChannelImpl.cpp | 10 +++++++++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pvAccessApp/remote/blockingTCPTransport.cpp b/pvAccessApp/remote/blockingTCPTransport.cpp index a75ea71..bd29841 100644 --- a/pvAccessApp/remote/blockingTCPTransport.cpp +++ b/pvAccessApp/remote/blockingTCPTransport.cpp @@ -665,10 +665,10 @@ namespace epics { _sendBuffer->setPosition(currentPos); _sendBuffer->setLimit(_sendBuffer->getSize()); } - } catch(std::exception& e) { - errlogSevPrintf(errlogMajor, "%s", e.what()); - // error, release lock - clearAndReleaseBuffer(); + //} catch(std::exception& e) { + // errlogSevPrintf(errlogMajor, "%s", e.what()); + // // error, release lock + // clearAndReleaseBuffer(); } catch(...) { clearAndReleaseBuffer(); } @@ -707,10 +707,11 @@ namespace epics { buffer->getRemaining(), 0); if(bytesSent<0) { + // connection lost ostringstream temp; temp<<"error in sending TCP data: "<(_channel->getChannelRequester()))->release(); // TODO make impl that does shares channels (and does ref counting)!!! // try catch? - static_cast(_channel)->destroy(); + _channel->destroy(); + } + delete this; } void ServerChannelImpl::printInfo()