diff options
author | Mark Spruiell <mes@zeroc.com> | 2002-03-08 18:34:41 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2002-03-08 18:34:41 +0000 |
commit | a2d34e1ec452a7b9894fe1d6e7b9363a8d2497f5 (patch) | |
tree | 056b9f97fe4e9fc4e5133be613a92d3d34846392 /java/src/IceInternal/ThreadPool.java | |
parent | adding optimize attribute (diff) | |
download | ice-a2d34e1ec452a7b9894fe1d6e7b9363a8d2497f5.tar.bz2 ice-a2d34e1ec452a7b9894fe1d6e7b9363a8d2497f5.tar.xz ice-a2d34e1ec452a7b9894fe1d6e7b9363a8d2497f5.zip |
initial performance fixes
Diffstat (limited to 'java/src/IceInternal/ThreadPool.java')
-rw-r--r-- | java/src/IceInternal/ThreadPool.java | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/java/src/IceInternal/ThreadPool.java b/java/src/IceInternal/ThreadPool.java index 724c261e23f..de46b6764cc 100644 --- a/java/src/IceInternal/ThreadPool.java +++ b/java/src/IceInternal/ThreadPool.java @@ -592,31 +592,38 @@ catch (RuntimeException ex) // ignore the event in this case. // BasicStream stream = new BasicStream(_instance); - if (handler.readable()) + try { - try + if (handler.readable()) { - if (!read(handler)) // No data available. + try { + if (!read(handler)) // No data available. + { //System.out.println("ThreadPool - no input"); + continue repeatSelect; + } + } + catch (Ice.TimeoutException ex) // Expected + { continue repeatSelect; } - } - catch (Ice.TimeoutException ex) // Expected - { - continue repeatSelect; - } - catch (Ice.LocalException ex) - { - handler.exception(ex); - continue repeatSelect; + catch (Ice.LocalException ex) + { + handler.exception(ex); + continue repeatSelect; + } + + stream.swap(handler._stream); + assert(stream.pos() == stream.size()); } - stream.swap(handler._stream); - assert(stream.pos() == stream.size()); + handler.message(stream); + } + finally + { + stream.destroy(); } - - handler.message(stream); break; } |