posix.cc (_Jv_platform_nanotime): Return nanoseconds, not microseconds; use gettimeofday when available.
* posix.cc (_Jv_platform_nanotime): Return nanoseconds, not microseconds; use gettimeofday when available. * posix-threads.cc (_Jv_CondWait): Improve accuracy and range of timeout calculation. * testsuite/libjava.lang/Thread_Sleep_2.java: New. * testsuite/libjava.lang/Thread_Sleep_2.out: New. * testsuite/libjava.lang/Thread_Sleep_2.xfail: New. From-SVN: r116941
This commit is contained in:
parent
f5efb27f74
commit
06fcf75439
6 changed files with 81 additions and 16 deletions
34
libjava/testsuite/libjava.lang/Thread_Sleep_2.java
Normal file
34
libjava/testsuite/libjava.lang/Thread_Sleep_2.java
Normal file
|
@ -0,0 +1,34 @@
|
|||
// Test that Thread.sleep() is accurate
|
||||
// and that nanoTime actually measures in nanoseconds.
|
||||
|
||||
public class Thread_Sleep_2
|
||||
{
|
||||
public static void main(String args[])
|
||||
{
|
||||
try
|
||||
{
|
||||
boolean ok = true;
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
long start = System.nanoTime();
|
||||
Thread.sleep(10);
|
||||
long end = System.nanoTime();
|
||||
if ((end - start) < 10000000)
|
||||
{
|
||||
System.out.print ("failed, iteration ");
|
||||
System.out.print (i);
|
||||
System.out.print (", time ");
|
||||
System.out.print (end - start);
|
||||
System.out.println ("ns");
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
System.out.println ("ok");
|
||||
}
|
||||
catch (InterruptedException x)
|
||||
{
|
||||
System.out.println("error: Thread interrupted.");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue