diff options
author | Andrew Haley <aph@redhat.com> | 2002-03-22 11:18:03 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2002-03-22 11:18:03 +0000 |
commit | f42f14a9ca641bc4c9bdd030b6dd1f31047bb54e (patch) | |
tree | 64c8ede1ff05df0b5d95656e77555205adaafdc0 /libjava/testsuite/libjava.lang | |
parent | 0a2ed1f101ae61e97e3e652dde6a537ecb4a267c (diff) | |
download | gcc-f42f14a9ca641bc4c9bdd030b6dd1f31047bb54e.zip gcc-f42f14a9ca641bc4c9bdd030b6dd1f31047bb54e.tar.gz gcc-f42f14a9ca641bc4c9bdd030b6dd1f31047bb54e.tar.bz2 |
Thread_Interrupt.java (Looper.calibrate): New.
2002-03-21 Andrew Haley <aph@redhat.com>
* libjava.lang/Thread_Interrupt.java (Looper.calibrate): New.
(yields): New.
From-SVN: r51169
Diffstat (limited to 'libjava/testsuite/libjava.lang')
-rw-r--r-- | libjava/testsuite/libjava.lang/Thread_Interrupt.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/libjava/testsuite/libjava.lang/Thread_Interrupt.java b/libjava/testsuite/libjava.lang/Thread_Interrupt.java index 5412549..cb569c8 100644 --- a/libjava/testsuite/libjava.lang/Thread_Interrupt.java +++ b/libjava/testsuite/libjava.lang/Thread_Interrupt.java @@ -44,12 +44,33 @@ class Sleeper extends Thread class Looper extends Thread { + // Return the number of Thread.yield()s we can do in 500ms. + static long calibrate () + { + long i = 1; + + for (int tries = 0; tries < 40; tries++) + { + long t = System.currentTimeMillis(); + for (long n = 0; n < i; n++) + Thread.yield(); + long t_prime = System.currentTimeMillis(); + if (t_prime - t > 500) + return i; + i *= 2; + } + // We have no system clock. Give up. + throw new RuntimeException ("We have no system clock."); + } + + static long yields = calibrate (); + public void run() { System.out.println ("Busy waiting"); int count = 0; - for (int i=0; i < 1000000; i++) + for (long i=0; i < yields; i++) { Thread.yield(); count += 5; |