diff options
author | Kevin Barnes | 2005-06-07 17:23:09 +0000 |
---|---|---|
committer | Kevin Barnes | 2005-06-07 17:23:09 +0000 |
commit | d237e8af0713c81eaa78357181c9cb64fb3ddeac (patch) | |
tree | e1f3f55802ef8cb4e0029bc7a8058b4e4826262e | |
parent | 73dc834c619d5bcb645815068eb5518b291c5508 (diff) | |
download | eclipse.platform.debug-d237e8af0713c81eaa78357181c9cb64fb3ddeac.tar.gz eclipse.platform.debug-d237e8af0713c81eaa78357181c9cb64fb3ddeac.tar.xz eclipse.platform.debug-d237e8af0713c81eaa78357181c9cb64fb3ddeac.zip |
Bug 92135 - Investigate console performance test failures
-rw-r--r-- | org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java index 93cd5adff..32419d542 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java @@ -66,6 +66,8 @@ public class OutputStreamMonitor implements IFlushableStreamMonitor { */ private boolean fKilled= false; + private long lastSleep; + /** * Creates an output stream monitor on the * given stream (connected to system out or err). @@ -123,6 +125,8 @@ public class OutputStreamMonitor implements IFlushableStreamMonitor { * exposing a <code>run</code> method. */ private void read() { + lastSleep = System.currentTimeMillis(); + long currentTime = lastSleep; byte[] bytes= new byte[BUFFER_SIZE]; int read = 0; while (read >= 0) { @@ -151,6 +155,15 @@ public class OutputStreamMonitor implements IFlushableStreamMonitor { } return; } + + currentTime = System.currentTimeMillis(); + if (currentTime - lastSleep > 1000) { + lastSleep = currentTime; + try { + Thread.sleep(1); // just give up CPU to maintain UI responsiveness. + } catch (InterruptedException e) { + } + } } try { fStream.close(); |