Skip to content

Commit

Permalink
Showing 7 changed files with 13 additions and 28 deletions.
6 changes: 1 addition & 5 deletions core/src/main/java/org/jruby/RubyComplex.java
Original file line number Diff line number Diff line change
@@ -68,7 +68,6 @@
import org.jruby.runtime.ThreadContext;
import org.jruby.runtime.Visibility;
import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.runtime.callsite.RespondToCallSite;
import org.jruby.util.ByteList;
import org.jruby.util.Numeric;

@@ -439,12 +438,9 @@ public static IRubyObject convert(ThreadContext context, IRubyObject recv, IRuby
}

private static boolean responds_to_to_c(ThreadContext context, IRubyObject obj) {
return respond_to_to_c.respondsTo(context, obj, obj);
return sites(context).respond_to_to_c.respondsTo(context, obj, obj);
}

// TODO: wasn't sure whether to put this on NumericSites, here for now - should move
static final RespondToCallSite respond_to_to_c = new RespondToCallSite("to_c");

/** nucomp_s_convert
*
*/
7 changes: 0 additions & 7 deletions core/src/main/java/org/jruby/RubyRational.java
Original file line number Diff line number Diff line change
@@ -391,13 +391,6 @@ private static IRubyObject convertCommon(ThreadContext context, IRubyObject recv
}
}

private static boolean responds_to_to_r(ThreadContext context, IRubyObject obj) {
return respond_to_to_r.respondsTo(context, obj, obj);
}

// TODO: wasn't sure whether to put this on NumericSites, here for now - should move
static final RespondToCallSite respond_to_to_r = new RespondToCallSite("to_r");

/** nurat_numerator
*
*/
14 changes: 1 addition & 13 deletions core/src/main/java/org/jruby/RubyThread.java
Original file line number Diff line number Diff line change
@@ -650,20 +650,8 @@ else if ( newThread ) {
catch (SecurityException ignore) { } // current thread can not modify
}

// TODO likely makes sense to have a counter or the Ruby class directly (could be included with JMX)
private static final WeakHashMap<Ruby, AtomicLong> threadCount = new WeakHashMap<Ruby, AtomicLong>(4);

private static long incAndGetThreadCount(final Ruby runtime) {
AtomicLong counter = threadCount.get(runtime);
if ( counter == null ) {
synchronized (runtime) {
counter = threadCount.get(runtime);
if ( counter == null ) {
threadCount.put(runtime, counter = new AtomicLong(0));
}
}
}
return counter.incrementAndGet();
return runtime.getThreadService().incrementAndGetThreadCount();
}

private static RubyThread startThread(final IRubyObject recv, final IRubyObject[] args, boolean callInit, Block block) {
Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@
package org.jruby.internal.runtime;

import java.lang.ref.SoftReference;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReentrantLock;

import java.util.ArrayList;
@@ -138,6 +139,8 @@ public class ThreadService {

private final ReentrantLock criticalLock = new ReentrantLock();

private final AtomicLong threadCount = new AtomicLong(0);

public ThreadService(final Ruby runtime) {
this.runtime = runtime;
this.localContext = new ThreadLocal<SoftReference<ThreadContext>>();
@@ -292,6 +295,10 @@ public boolean getCritical() {
return criticalLock.isHeldByCurrentThread();
}

public long incrementAndGetThreadCount() {
return threadCount.incrementAndGet();
}

@Deprecated
public Map<Object, RubyThread> getRubyThreadMap() {
return rubyThreadMap;
1 change: 1 addition & 0 deletions core/src/main/java/org/jruby/runtime/JavaSites.java
Original file line number Diff line number Diff line change
@@ -349,6 +349,7 @@ public static class ComplexSites {
public final CallSite op_exp = new FunctionalCachingCallSite("**");
public final CallSite op_times = new FunctionalCachingCallSite("*");
public final CallSite op_minus = new FunctionalCachingCallSite("-");
public final RespondToCallSite respond_to_to_c = new RespondToCallSite("to_c");
}

public static class RationalSites {
4 changes: 2 additions & 2 deletions core/src/main/java/org/jruby/util/IOInputStream.java
Original file line number Diff line number Diff line change
@@ -51,8 +51,8 @@ public class IOInputStream extends InputStream {
private final IRubyObject io;
private final InputStream in;
private final IRubyObject numOne;
private static final CallSite readAdapter = MethodIndex.getFunctionalCallSite("read");
private static final CallSite closeAdapter = MethodIndex.getFunctionalCallSite("close");
private final CallSite readAdapter = MethodIndex.getFunctionalCallSite("read");
private final CallSite closeAdapter = MethodIndex.getFunctionalCallSite("close");

/**
* Creates a new InputStream with the object provided.
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/util/IOOutputStream.java
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ public class IOOutputStream extends OutputStream {
private final IRubyObject io;
private final OutputStream out;
private final CallSite writeAdapter;
private static final CallSite closeAdapter = MethodIndex.getFunctionalCallSite("close");
private final CallSite closeAdapter = MethodIndex.getFunctionalCallSite("close");
private final Encoding encoding;

/**

0 comments on commit f248488

Please sign in to comment.