diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp index 32d66528023..5111f857368 100644 --- a/cpp/src/Ice/UdpTransceiver.cpp +++ b/cpp/src/Ice/UdpTransceiver.cpp @@ -65,6 +65,17 @@ IceInternal::UdpTransceiver::shutdownReadWrite() assert(_fd != INVALID_SOCKET); shutdownSocketReadWrite(_fd); + +#ifdef _WIN32 + // + // This is required to unblock the select call when using thread per connection. + // + SOCKET fd = createSocket(true); + setBlock(fd, false); + doConnect(fd, _addr, -1); + ::send(fd, "", 1, 0); + closeSocket(fd); +#endif } void |