Mercurial > hg > openjdk > bsd-port > jdk
changeset 5817:201ecfb75ff1
8000817: Reinstate accidentally removed sleep() from ProcessBuilder/Basic.java
Reviewed-by: alanb, martin
author | robm |
---|---|
date | Mon, 15 Oct 2012 03:26:11 +0100 |
parents | e5332527caa1 |
children | 4d52c56c969d |
files | test/java/lang/ProcessBuilder/Basic.java |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/test/java/lang/ProcessBuilder/Basic.java Thu Oct 11 18:24:38 2012 +0100 +++ b/test/java/lang/ProcessBuilder/Basic.java Mon Oct 15 03:26:11 2012 +0100 @@ -40,6 +40,7 @@ import java.util.*; import java.util.concurrent.CountDownLatch; import java.security.*; +import sun.misc.Unsafe; import java.util.regex.Pattern; import java.util.regex.Matcher; import static java.lang.System.getenv; @@ -1930,6 +1931,7 @@ thread.start(); latch.await(); + Thread.sleep(10); String os = System.getProperty("os.name"); if (os.equalsIgnoreCase("Solaris") || @@ -1954,6 +1956,15 @@ while (useCountField.getInt(deferred) <= 0) { Thread.yield(); } + } else if (s instanceof BufferedInputStream) { + Field f = Unsafe.class.getDeclaredField("theUnsafe"); + f.setAccessible(true); + Unsafe unsafe = (Unsafe)f.get(null); + + while (unsafe.tryMonitorEnter(s)) { + unsafe.monitorExit(s); + Thread.sleep(1); + } } p.destroy(); thread.join();