Thread.times in jruby/core_ext feature reports a cpu times as a system times
----------------------------------------------------------------------------
Key: JRUBY-5296
URL: http://jira.codehaus.org/browse/JRUBY-5296
Project: JRuby
Issue Type: Bug
Components: Java Integration
Environment: jruby 1.6.0.dev (ruby 1.8.7 patchlevel 330) (2011-01-03
45c7e9f) (OpenJDK 64-Bit Server VM 1.6.0_20) [linux-amd64-java]
Reporter: Hiroshi Nakamura
Priority: Trivial
If I understand correctly, CPU times = system times + user times.
Anyway, who is using this feature?
{noformat}
diff --git a/src/org/jruby/RubyJRuby.java b/src/org/jruby/RubyJRuby.java
index f7fd9a9..bbe293f 100644
--- a/src/org/jruby/RubyJRuby.java
+++ b/src/org/jruby/RubyJRuby.java
@@ -597,11 +597,19 @@ public class RubyJRuby {
@JRubyMethod(name = "times", module = true)
public static IRubyObject times(IRubyObject recv, Block unusedBlock) {
Ruby runtime = recv.getRuntime();
- double system = threadBean.getCurrentThreadCpuTime() /
1000000000.0;
- double user = threadBean.getCurrentThreadUserTime() / 1000000000.0;
+ long cpu = threadBean.getCurrentThreadCpuTime();
+ long user = threadBean.getCurrentThreadUserTime();
+ if (cpu == -1) {
+ cpu = 0L;
+ }
+ if (user == -1) {
+ user = 0L;
+ }
+ double system_d = (cpu - user) / 1000000000.0;
+ double user_d = user / 1000000000.0;
RubyFloat zero = runtime.newFloat(0.0);
return RubyStruct.newStruct(runtime.getTmsStruct(),
- new IRubyObject[] { RubyFloat.newFloat(runtime, user),
RubyFloat.newFloat(runtime, system), zero, zero },
+ new IRubyObject[] { RubyFloat.newFloat(runtime, user_d),
RubyFloat.newFloat(runtime, system_d), zero, zero },
Block.NULL_BLOCK);
}
}
{noformat}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
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