Kernel.sleep() is not monotonic when system clock changes during sleeping -------------------------------------------------------------------------
Key: JRUBY-6236 URL: https://jira.codehaus.org/browse/JRUBY-6236 Project: JRuby Issue Type: Bug Components: Core Classes/Modules Environment: CentOS 5.6 Reporter: Yamada Goro Changing system clock to past time during sleeping results in additional sleep time. For example, call sleep(10), set system clock 10 seconds ago, then sleep() takes 20 seconds. This seems to be caused by the code below. It uses System.currentTimeMillis() to determine how long to sleep. {code:title=RubyKernel.sleep()|borderStyle=solid} // Spurious wakeup-loop do { long loopStartTime = System.currentTimeMillis(); try { // We break if we know this sleep was explicitly woken up/interrupted if (!rubyThread.sleep(milliseconds)) break; } catch (InterruptedException iExcptn) { } milliseconds -= (System.currentTimeMillis() - loopStartTime); } while (milliseconds > 0); {code} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email