Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * To change this template, choose Tools | Templates
   * and open the template in the editor.
   */
  package org.jruby.runtime;
  
Represents a special Java implementation of a block.
 
 public abstract class JavaInternalBlockBody extends BlockBody {
     private final Arity arity;
     private final ThreadContext originalContext;
     private final String methodName;
    
    
For blocks which can be executed in any thread concurrently.
 
     public JavaInternalBlockBody(Arity arity) {
         this(nullnullarity);
     }

    
For blocks which cannot be executed in parallel.

Parameters:
methodName
arity
 
     public JavaInternalBlockBody(ThreadContext originalContextString methodNameArity arity) {
         super(.);
         
         this. = arity;
         this. = originalContext;
         this. = methodName;
     }
     
     // Make sure we are still on the same thread as originator if we care
     private void threadCheck(ThreadContext yieldingContext) {
         if ( != null && yieldingContext != ) {
             throw yieldingContext.runtime.newThreadError("" +  + " cannot be parallelized");
         }
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject[] argsBinding bindingBlock.Type type) {
         IRubyObject value;
         if (args.length == 1) {
             value = args[0];
         } else {
             value = RubyArray.newArrayNoCopy(context.runtimeargs);
         }
         return yield(contextvaluenullnulltruebindingtype);
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject[] argsBinding binding,
                             Block.Type typeBlock block) {
         IRubyObject value;
         if (args.length == 1) {
             value = args[0];
         } else {
             value = RubyArray.newArrayNoCopy(context.runtimeargs);
         }
         return yield(contextvaluenullnulltruebindingtypeblock);
     }
 
     @Override
     public IRubyObject yield(ThreadContext contextIRubyObject valueBinding bindingType type) {
         threadCheck(context);
         
         return yield(contextvalue);        
     }
 
     @Override
     public IRubyObject yield(ThreadContext contextIRubyObject valueIRubyObject selfRubyModule klassboolean aValueBinding bindingType type) {
         threadCheck(context);
         
         
         return yield(contextvalue);
     }
     
     public abstract IRubyObject yield(ThreadContext contextIRubyObject value);
 
     @Override
     public StaticScope getStaticScope() {
         throw new RuntimeException("CallBlock does not have a static scope; this should not be called");
     }
 
     @Override
     public void setStaticScope(StaticScope newScope) {
         throw new RuntimeException("CallBlock does not have a static scope; this should not be called");
     }
 
     @Override
     public Block cloneBlock(Binding binding) {
        return new Block(thisbinding);
    }
    @Override
    public Arity arity() {
        return ;
    }
    @Override
    public String getFile() {
        return "(internal)";
    }
    @Override
    public int getLine() {
        return -1;
    }
    
New to GrepCode? Check out our FAQ X