public class timedwait { public static Object foo = new Object(); public static void main(String [] args) { try { if (Ti.thisProc() == 0) System.out.println("Testing timed wait... (this may take awhile)"); for (int i = 4; i < 12; i++) { for (int j = 1; j < 5; j++) { long targettime = (long)Math.pow(2,i); //System.out.print("target: " + targettime + " ms"); long starttime = System.currentTimeMillis(); synchronized (foo) { foo.wait(targettime); } long endtime = System.currentTimeMillis(); long actualtime = endtime - starttime; if (actualtime < targettime || actualtime > targettime + 500) System.out.println("ERROR: tried to wait for: " + targettime + " ms, but actual wait time was: " + actualtime + " ms"); } } } catch (InterruptedException exn) { System.out.println("ERROR: caught InterruptedException"); } Ti.barrier(); if (Ti.thisProc() == 0) System.out.println("done."); } }