changeset 10582:6cb9516d7036

Ensure compilation in System_currentTimeMillis02
author Morris Meyer <morris.meyer@oracle.com>
date Sun, 30 Jun 2013 11:19:21 -0400
parents 63d0eaa9b25d
children 9af370c1fdf0
files graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/jdk/System_currentTimeMillis02.java
diffstat 1 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/jdk/System_currentTimeMillis02.java	Sat Jun 29 22:06:05 2013 -0400
+++ b/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/jdk/System_currentTimeMillis02.java	Sun Jun 30 11:19:21 2013 -0400
@@ -29,15 +29,26 @@
  */
 public class System_currentTimeMillis02 extends JTTTest {
 
+    static void m(long[] times) {
+        times[1] = System.currentTimeMillis() - times[0];
+    }
+
     public static boolean test() {
-        long start = System.currentTimeMillis();
-        long delta = 0;
-        for (int i = 0; delta == 0 && i < 5000000; i++) {
-            delta = System.currentTimeMillis() - start;
+        long times[] = new long[2];  // { start, delta }
+        times[0] = System.currentTimeMillis();
+        times[1] = 0;
+        // force compilation:
+        for (int i = 0; i < 5000; i++) {
+            m(times);
+        }
+        times[0] = System.currentTimeMillis();
+        times[1] = 0;
+        for (int i = 0; times[1] == 0 && i < 5000000; i++) {
+            m(times);
             // do nothing.
         }
         // better get at least 100 millisecond resolution.
-        return delta >= 1 && delta < 100;
+        return times[1] >= 1 && times[1] < 100;
     }
 
     @Test