From 7bfe58f1e2c4f3d1efae0ad4a9ae8cbcd4e88cbd Mon Sep 17 00:00:00 2001 From: Matej Sekoranja Date: Thu, 25 Feb 2016 10:37:01 +0100 Subject: [PATCH] UDP transport shutdown fixed --- src/remote/blockingUDPTransport.cpp | 2 +- src/remoteClient/clientContextImpl.cpp | 3 ++- src/server/serverContext.cpp | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/remote/blockingUDPTransport.cpp b/src/remote/blockingUDPTransport.cpp index 78ccca7..77e5813 100644 --- a/src/remote/blockingUDPTransport.cpp +++ b/src/remote/blockingUDPTransport.cpp @@ -154,7 +154,7 @@ inline int sendto(int s, const char *buf, size_t len, int flags, const struct so // wait for send thread to exit cleanly - if (waitForThreadToComplete) + if (_thread.get() && waitForThreadToComplete) { if (!_shutdownEvent.wait(5.0)) { diff --git a/src/remoteClient/clientContextImpl.cpp b/src/remoteClient/clientContextImpl.cpp index 1f36273..3945250 100644 --- a/src/remoteClient/clientContextImpl.cpp +++ b/src/remoteClient/clientContextImpl.cpp @@ -4666,7 +4666,8 @@ namespace epics { localMulticastTransport->start(); m_udpTransports.push_back(transport); - m_udpTransports.push_back(transport2); + if (transport2) + m_udpTransports.push_back(transport2); m_udpTransports.push_back(localMulticastTransport); } diff --git a/src/server/serverContext.cpp b/src/server/serverContext.cpp index 4957a74..5ed0ea9 100644 --- a/src/server/serverContext.cpp +++ b/src/server/serverContext.cpp @@ -476,7 +476,8 @@ void ServerContextImpl::initializeBroadcastTransport() localMulticastTransport->start(); _udpTransports.push_back(transport); - _udpTransports.push_back(transport2); + if(transport2) + _udpTransports.push_back(transport2); _udpTransports.push_back(localMulticastTransport); }