summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ThreadPool.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2002-03-10 22:49:39 +0000
committerMark Spruiell <mes@zeroc.com>2002-03-10 22:49:39 +0000
commit8d782978f342e02dfa652a39af0c3145230bbbd7 (patch)
tree887a6817cb1241e93fa7f6a8d951d7ed21bda2e8 /java/src/IceInternal/ThreadPool.java
parentcleanup (diff)
downloadice-8d782978f342e02dfa652a39af0c3145230bbbd7.tar.bz2
ice-8d782978f342e02dfa652a39af0c3145230bbbd7.tar.xz
ice-8d782978f342e02dfa652a39af0c3145230bbbd7.zip
ignore IOException caused by Ctrl-C
Diffstat (limited to 'java/src/IceInternal/ThreadPool.java')
-rw-r--r--java/src/IceInternal/ThreadPool.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/java/src/IceInternal/ThreadPool.java b/java/src/IceInternal/ThreadPool.java
index 2e1c076b6a2..91017154b65 100644
--- a/java/src/IceInternal/ThreadPool.java
+++ b/java/src/IceInternal/ThreadPool.java
@@ -419,6 +419,17 @@ catch (RuntimeException ex)
}
catch (java.io.IOException ex)
{
+ //
+ // Pressing Ctrl-C causes select() to raise an
+ // IOException, which seems like a JDK bug. We trap
+ // for that special case here and ignore it.
+ // Hopefully we're not masking something important!
+ //
+ if (ex.getMessage().indexOf("Interrupted system call") != -1)
+ {
+ continue repeatSelect;
+ }
+
Ice.SocketException se = new Ice.SocketException();
se.initCause(ex);
throw se;