BlockingUDPTransport::enqueueSendRequest cleanup?

oh my was this bad code!  It isn't clear what
lock()/unlock() are guarding, but let them
continue as before, but don't swallow any exception,
or unlock twice.
This commit is contained in:
Michael Davidsaver
2018-06-22 12:48:49 -07:00
parent d424202323
commit 4b3237a20d

View File

@@ -172,18 +172,15 @@ void BlockingUDPTransport::enqueueSendRequest(TransportSender::shared_pointer co
_sendToEnabled = false;
_sendBuffer.clear();
sender->lock();
try {
{
epicsGuard<TransportSender> G(*sender);
sender->send(&_sendBuffer, this);
sender->unlock();
endMessage();
if(!_sendToEnabled)
send(&_sendBuffer);
else
send(&_sendBuffer, _sendTo);
} catch(...) {
sender->unlock();
}
endMessage();
if(!_sendToEnabled)
send(&_sendBuffer);
else
send(&_sendBuffer, _sendTo);
}