From 4b3237a20db5f6a68cb4910a8b4f0a66599f4e82 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Fri, 22 Jun 2018 12:48:49 -0700 Subject: [PATCH] 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. --- src/remote/blockingUDPTransport.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/remote/blockingUDPTransport.cpp b/src/remote/blockingUDPTransport.cpp index 67ffe8d..b2f8200 100644 --- a/src/remote/blockingUDPTransport.cpp +++ b/src/remote/blockingUDPTransport.cpp @@ -172,18 +172,15 @@ void BlockingUDPTransport::enqueueSendRequest(TransportSender::shared_pointer co _sendToEnabled = false; _sendBuffer.clear(); - sender->lock(); - try { + { + epicsGuard 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); }