memory leaks

This commit is contained in:
Matej Sekoranja
2011-03-03 22:12:56 +01:00
parent d8fd120578
commit 6e2d94f91e
4 changed files with 13 additions and 8 deletions

View File

@@ -65,12 +65,12 @@ void BaseChannelRequester::message(const String message, const epics::pvData::Me
void BaseChannelRequester::message(Transport* transport, const pvAccessID ioid, const String message, const MessageType messageType)
{
transport->enqueueSendRequest( new BaseChannelRequesterMessageTransportSender(ioid, message, messageType));
transport->enqueueSendRequest(new BaseChannelRequesterMessageTransportSender(ioid, message, messageType));
}
void BaseChannelRequester::sendFailureMessage(const int8 command, Transport* transport, const pvAccessID ioid, const int8 qos, const Status status)
{
transport->enqueueSendRequest( new BaseChannelRequesterFailureMessageTransportSender(command, transport, ioid, qos, status));
transport->enqueueSendRequest(new BaseChannelRequesterFailureMessageTransportSender(command, transport, ioid, qos, status));
}
BaseChannelRequesterMessageTransportSender::BaseChannelRequesterMessageTransportSender(const pvAccessID ioid, const String message,const epics::pvData::MessageType messageType):
@@ -138,7 +138,7 @@ void BaseChannelRequesterFailureMessageTransportSender::unlock()
void BaseChannelRequesterFailureMessageTransportSender::release()
{
delete this;
}
void BaseChannelRequesterFailureMessageTransportSender::acquire()

View File

@@ -44,7 +44,6 @@ private:
ServerContextImpl* _context;
static const int32 NULL_REQUEST;
int32 _pendingRequest;
int32 _refCount;
};
class BaseChannelRequesterMessageTransportSender : public TransportSender

View File

@@ -40,7 +40,7 @@ void ServerBadResponse::handleResponse(osiSockAddr* responseFrom,
}
ServerResponseHandler::ServerResponseHandler(ServerContextImpl* context) {
// TODO replace with auto_ptr and vector
_badResponse = new ServerBadResponse(context);
_handlerTable = new ResponseHandler*[HANDLER_TABLE_LENGTH];
@@ -139,11 +139,12 @@ void ServerEchoHandler::handleResponse(osiSockAddr* responseFrom,
AbstractServerResponseHandler::handleResponse(responseFrom,
transport, version, command, payloadSize, payloadBuffer);
EchoTransportSender* echoReply = new EchoTransportSender(
responseFrom);
EchoTransportSender* echoReply = new EchoTransportSender(responseFrom);
// send back
transport->enqueueSendRequest(echoReply);
echoReply->release();
}
void ServerIntrospectionSearchHandler::handleResponse(osiSockAddr* responseFrom,
@@ -328,6 +329,7 @@ void ServerCreateChannelHandler::handleResponse(osiSockAddr* responseFrom,
return;
}
// TODO memory leak...
ChannelRequester* cr = new ServerChannelRequesterImpl(transport, channelName, cid);
_provider->createChannel(channelName, cr, transport->getPriority());
}
@@ -495,7 +497,9 @@ void ServerDestroyChannelHandler::handleResponse(osiSockAddr* responseFrom,
casTransport->unregisterChannel(sid);
// send response back
transport->enqueueSendRequest(new ServerDestroyChannelHandlerTransportSender(cid, sid));
ServerDestroyChannelHandlerTransportSender* sr = new ServerDestroyChannelHandlerTransportSender(cid, sid);
transport->enqueueSendRequest(sr);
sr->release();
}
/****************************************************************************************/
@@ -1697,6 +1701,7 @@ void ServerGetFieldRequesterImpl::getDone(const Status& status, FieldConstPtr fi
_field = field;
}
_transport->enqueueSendRequest(this);
release();
}
void ServerGetFieldRequesterImpl::lock()

View File

@@ -149,6 +149,7 @@ namespace epics {
virtual void send(ByteBuffer* buffer, TransportSendControl* control) {
control->startMessage(CMD_ECHO, 0);
control->setRecipient(_echoFrom);
// TODO content
}
virtual void lock() {