private static RubyThread startThread( final IRubyObject recv, final IRubyObject[] args, boolean callInit, Block block) { RubyThread rubyThread = new RubyThread(recv.getRuntime(), (RubyClass) recv); if (callInit) { rubyThread.callInit(args, block); } else { // for Thread::start, which does not call the subclass's initialize rubyThread.initialize(recv.getRuntime().getCurrentContext(), args, block); } return rubyThread; }