client minor locking

This commit is contained in:
Michael Davidsaver
2017-11-16 17:28:27 -06:00
parent 8e846b02bc
commit f45de1de68

View File

@@ -274,9 +274,8 @@ public:
if (status.isSuccess())
{
// once created set destroy flag
m_mutex.lock();
Lock G(m_mutex);
m_initialized = true;
m_mutex.unlock();
}
initResponse(transport, version, payloadBuffer, qos, status);
@@ -287,10 +286,9 @@ public:
if (qos & QOS_DESTROY)
{
m_mutex.lock();
Lock G(m_mutex);
m_initialized = false;
destroyReq = true;
m_mutex.unlock();
}
normalResponse(transport, version, payloadBuffer, qos, status);
@@ -340,11 +338,13 @@ public:
virtual void destroy(bool createRequestFailed) {
bool initd;
{
Lock guard(m_mutex);
if (m_destroyed)
return;
m_destroyed = true;
initd = m_initialized;
}
// unregister response request
@@ -352,7 +352,7 @@ public:
m_channel->unregisterResponseRequest(m_ioid);
// destroy remote instance
if (!createRequestFailed && m_initialized)
if (!createRequestFailed && initd)
{
try
{
@@ -2350,9 +2350,8 @@ public:
status.deserialize(payloadBuffer, transport.get());
if (status.isSuccess())
{
m_mutex.lock();
Lock G(m_mutex);
m_initialized = true;
m_mutex.unlock();
}
initResponse(transport, version, payloadBuffer, qos, status);
}
@@ -2361,9 +2360,10 @@ public:
Status status;
status.deserialize(payloadBuffer, transport.get());
m_mutex.lock();
m_initialized = false;
m_mutex.unlock();
{
Lock G(m_mutex);
m_initialized = false;
}
normalResponse(transport, version, payloadBuffer, qos, status);
}