OSDN Git Service

* java/lang/natThread.cc (sleep): Turn 0 millis and 0 nanos into 1
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Aug 1999 03:48:37 +0000 (03:48 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Aug 1999 03:48:37 +0000 (03:48 +0000)
nano.
* include/quick-threads.h (_Jv_CondWait): Don't round to 0
inappropriately.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28742 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/include/quick-threads.h
libjava/java/lang/natThread.cc

index cd004eb..d4031dc 100644 (file)
@@ -1,3 +1,10 @@
+1999-08-17  Tom Tromey  <tromey@cygnus.com>
+
+       * java/lang/natThread.cc (sleep): Turn 0 millis and 0 nanos into 1
+       nano.
+       * include/quick-threads.h (_Jv_CondWait): Don't round to 0
+       inappropriately.
+
 1999-08-16  Tom Tromey  <tromey@cygnus.com>
 
        * configure: Rebuilt.
index 3ce8ece..4626add 100644 (file)
@@ -38,7 +38,11 @@ inline int
 _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
              jlong millis, jint nanos)
 {
-  return coop_condition_variable_wait (cv, mu, millis * 1000 + nanos / 1000);
+  long micros = millis * 1000 + nanos / 1000;
+  // Don't round to 0 inappropriately.
+  if (! micros && (millis || nanos))
+    micros = 1;
+  return coop_condition_variable_wait (cv, mu, micros);
 }
 
 inline int
index 1171911..9dc192e 100644 (file)
@@ -214,6 +214,9 @@ java::lang::Thread::sleep (jlong millis, jint nanos)
   if (millis < 0 || nanos < 0 || nanos > 999999)
     _Jv_Throw (new IllegalArgumentException);
 
+  if (millis == 0 && nanos == 0)
+    ++nanos;
+
   Thread *current = currentThread ();
   if (current->isInterrupted ())
     _Jv_Throw (new InterruptedException);