Monitor memory leak fixed

This commit is contained in:
Matej Sekoranja
2011-05-18 11:54:10 +02:00
parent 484da96da6
commit 3d8c681be7
3 changed files with 5 additions and 7 deletions

View File

@@ -1143,7 +1143,7 @@ void ServerMonitorHandler::handleResponse(osiSockAddr* responseFrom,
/*
if (!request->startRequest(qosCode))
{
BaseChannelRequester::sendFailureMessage((int8)13, transport, ioid, qosCode, BaseChannelRequester::otherRequestPendingStatus);
BaseChannelRequester::sendFailureMessage((int8)CMD_MONITOR, transport, ioid, qosCode, BaseChannelRequester::otherRequestPendingStatus);
return;
}
*/
@@ -1169,7 +1169,7 @@ void ServerMonitorHandler::handleResponse(osiSockAddr* responseFrom,
ServerMonitorRequesterImpl::ServerMonitorRequesterImpl(
ServerContextImpl::shared_pointer const & context, ServerChannelImpl::shared_pointer const & channel,
const pvAccessID ioid, Transport::shared_pointer const & transport):
BaseChannelRequester(context, channel, ioid, transport), _monitor(), _channelMonitor(), _structure()
BaseChannelRequester(context, channel, ioid, transport), _channelMonitor(), _structure()
{
}
@@ -1196,9 +1196,8 @@ void ServerMonitorRequesterImpl::monitorConnect(const Status& status, Monitor::s
{
Lock guard(_mutex);
_status = status;
_monitor = monitor;
_channelMonitor = monitor;
_structure = structure;
_monitor = monitor;
}
TransportSender::shared_pointer thisSender = shared_from_this();
_transport->enqueueSendRequest(thisSender);
@@ -1288,7 +1287,7 @@ void ServerMonitorRequesterImpl::send(ByteBuffer* buffer, TransportSendControl*
}
else
{
Monitor::shared_pointer monitor = _monitor;
Monitor::shared_pointer monitor = _channelMonitor;
MonitorElement::shared_pointer element = monitor->poll();
if (element != NULL)
{

View File

@@ -484,7 +484,6 @@ namespace epics {
epics::pvData::Monitor::shared_pointer getChannelMonitor();
void send(epics::pvData::ByteBuffer* buffer, TransportSendControl* control);
private:
epics::pvData::Monitor::shared_pointer _monitor;
epics::pvData::Monitor::shared_pointer _channelMonitor;
epics::pvData::StructureConstPtr _structure;
epics::pvData::Status _status;

View File

@@ -1098,7 +1098,7 @@ void testServer()
ctx->printInfo();
ctx->run(30);
ctx->run(100);
ctx->destroy();