diff options
author | Benoit Foucher <benoit@zeroc.com> | 2017-01-18 19:16:02 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2017-01-18 19:16:02 +0100 |
commit | 4baf696c7156c9f300a33d9041bd677c574b6e14 (patch) | |
tree | 15d736254302f6b01260134a97f3bdfc04ff9738 /cpp/src/Ice/Selector.cpp | |
parent | Fixed bug introduced by previous commit (diff) | |
download | ice-4baf696c7156c9f300a33d9041bd677c574b6e14.tar.bz2 ice-4baf696c7156c9f300a33d9041bd677c574b6e14.tar.xz ice-4baf696c7156c9f300a33d9041bd677c574b6e14.zip |
Fixed ICE-2802 - no longer halt when running out of FDs
Diffstat (limited to 'cpp/src/Ice/Selector.cpp')
-rw-r--r-- | cpp/src/Ice/Selector.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/cpp/src/Ice/Selector.cpp b/cpp/src/Ice/Selector.cpp index c08cb559c55..d87e198c0e1 100644 --- a/cpp/src/Ice/Selector.cpp +++ b/cpp/src/Ice/Selector.cpp @@ -163,12 +163,10 @@ Selector::getNextHandler(SocketOperation& status, int timeout) } else { - { - Ice::SocketException ex(__FILE__, __LINE__, err); - Ice::Error out(_instance->initializationData().logger); - out << "fatal error: couldn't dequeue packet from completion port:\n" << ex; - } - abort(); + Ice::SocketException ex(__FILE__, __LINE__, err); + Ice::Error out(_instance->initializationData().logger); + out << "couldn't dequeue packet from completion port:\n" << ex; + IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(5)); // Sleep 5s to avoid looping } } AsyncInfo* info = static_cast<AsyncInfo*>(ol); @@ -832,12 +830,10 @@ Selector::select(int timeout) continue; } - { - Ice::SocketException ex(__FILE__, __LINE__, IceInternal::getSocketErrno()); - Ice::Error out(_instance->initializationData().logger); - out << "fatal error: selector failed:\n" << ex; - } - abort(); + Ice::SocketException ex(__FILE__, __LINE__, IceInternal::getSocketErrno()); + Ice::Error out(_instance->initializationData().logger); + out << "selector failed:\n" << ex; + IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(5)); // Sleep 5s to avoid looping } break; } |