diff src/os/bsd/vm/os_bsd.cpp @ 17810:62c54fcc0a35

Merge
author kvn
date Tue, 25 Mar 2014 17:07:36 -0700
parents bbfbe9b06038 0e6af9b390af
children 21dd1c827123
line wrap: on
line diff
--- a/src/os/bsd/vm/os_bsd.cpp	Tue Mar 25 12:54:21 2014 -0700
+++ b/src/os/bsd/vm/os_bsd.cpp	Tue Mar 25 17:07:36 2014 -0700
@@ -2590,9 +2590,21 @@
   }
 }
 
-int os::naked_sleep() {
-  // %% make the sleep time an integer flag. for now use 1 millisec.
-  return os::sleep(Thread::current(), 1, false);
+void os::naked_short_sleep(jlong ms) {
+  struct timespec req;
+
+  assert(ms < 1000, "Un-interruptable sleep, short time use only");
+  req.tv_sec = 0;
+  if (ms > 0) {
+    req.tv_nsec = (ms % 1000) * 1000000;
+  }
+  else {
+    req.tv_nsec = 1;
+  }
+
+  nanosleep(&req, NULL);
+
+  return;
 }
 
 // Sleep forever; naked call to OS-specific sleep; use with CAUTION