Top Description Inners Fields Constructors Methods
org.jruby.util

public Class MRIRecursionGuard

extends Object
Class Inheritance
Imports
org.jruby.Ruby, .RubyHash, .RubySymbol, org.jruby.exceptions.Unrescuable, org.jruby.runtime.Block, .Helpers, .ThreadContext, org.jruby.runtime.builtin.IRubyObject, java.util.HashMap, .Map, java.util.concurrent.Callable

Deprecated MRI-style recursion guard logic pulled out of Ruby.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static class
public static interface

Field Summary

Modifier and TypeField and Description
private final ThreadLocal<Boolean>
private final ThreadLocal<Map<String, RubyHash>>
private final RubySymbol
private final Ruby

Constructor Summary

AccessConstructor and Description
public
MRIRecursionGuard(Ruby runtime)
Deprecated

Method Summary

Modifier and TypeMethod and Description
public IRubyObject
private IRubyObject
private IRubyObject
public IRubyObject
private boolean
recursiveCheck(IRubyObject list, IRubyObject obj_id, IRubyObject paired_obj_id)

private IRubyObject
private void
public <T extends IRubyObject> T
recursiveListOperation(Callable<T> body)
Deprecated

private void
private void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

inRecursiveListOperationback to summary
private final ThreadLocal<Boolean> inRecursiveListOperation
recursiveback to summary
private final ThreadLocal<Map<String, RubyHash>> recursive
recursiveKeyback to summary
private final RubySymbol recursiveKey
runtimeback to summary
private final Ruby runtime

Constructor Detail

MRIRecursionGuardback to summary
public MRIRecursionGuard(Ruby runtime)

Deprecated

Annotations
@Deprecated

Method Detail

execRecursiveback to summary
public IRubyObject execRecursive(MRIRecursionGuard.RecursiveFunction func, IRubyObject obj)

Deprecated

Annotations
@Deprecated
execRecursiveIback to summary
private IRubyObject execRecursiveI(ThreadContext context, MRIRecursionGuard.ExecRecursiveParams p)
execRecursiveInternalback to summary
private IRubyObject execRecursiveInternal(MRIRecursionGuard.RecursiveFunction func, IRubyObject obj, IRubyObject pairid, boolean outer)

Deprecated

Annotations
@Deprecated
execRecursiveOuterback to summary
public IRubyObject execRecursiveOuter(MRIRecursionGuard.RecursiveFunction func, IRubyObject obj)

Deprecated

Annotations
@Deprecated
recursiveCheckback to summary
private boolean recursiveCheck(IRubyObject list, IRubyObject obj_id, IRubyObject paired_obj_id)
recursiveListAccessback to summary
private IRubyObject recursiveListAccess(ThreadContext context)
recursiveListClearback to summary
private void recursiveListClear()
recursiveListOperationback to summary
public <T extends IRubyObject> T recursiveListOperation(Callable<T> body)

Deprecated

Annotations
@Deprecated
recursivePopback to summary
private void recursivePop(ThreadContext context, IRubyObject list, IRubyObject obj, IRubyObject paired_obj)
recursivePushback to summary
private void recursivePush(ThreadContext context, IRubyObject list, IRubyObject obj, IRubyObject paired_obj)
org.jruby.util back to summary

private Class MRIRecursionGuard.ExecRecursiveParams

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
public MRIRecursionGuard.RecursiveFunction
func

References Deprecated MRIRecursionGuard.RecursiveFunction is deprecated or references (maybe indirectly) at least one deprecated element.
public IRubyObject
public IRubyObject
public IRubyObject
public IRubyObject

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

funcback to summary
public MRIRecursionGuard.RecursiveFunction func

References Deprecated

MRIRecursionGuard.RecursiveFunction is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

listback to summary
public IRubyObject list
objback to summary
public IRubyObject obj
objidback to summary
public IRubyObject objid
pairidback to summary
public IRubyObject pairid

Constructor Detail

ExecRecursiveParamsback to summary
public ExecRecursiveParams()
org.jruby.util back to summary

private Class MRIRecursionGuard.RecursiveError

extends Error
implements Unrescuable
Class Inheritance
All Implemented Interfaces
org.jruby.exceptions.Unrescuable

Field Summary

Modifier and TypeField and Description
public final Object

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public synchronized Throwable
fillInStackTrace()

Overrides java.lang.Throwable.fillInStackTrace.

Fills in the execution stack trace.

Field Detail

tagback to summary
public final Object tag

Constructor Detail

RecursiveErrorback to summary
public RecursiveError(Object tag)

Method Detail

fillInStackTraceback to summary
public synchronized Throwable fillInStackTrace()

Overrides java.lang.Throwable.fillInStackTrace.

Doc from java.lang.Throwable.fillInStackTrace.

Fills in the execution stack trace. This method records within this Throwable object information about the current state of the stack frames for the current thread.

If the stack trace of this Throwable is not writable, calling this method has no effect.

Returns:Throwable

a reference to this Throwable instance.

Annotations
@Override
org.jruby.util back to summary

public Interface MRIRecursionGuard.RecursiveFunction

Annotations
@Deprecated

Deprecated

Method Summary

Modifier and TypeMethod and Description
public IRubyObject
call(IRubyObject obj, boolean recur)

Method Detail

callback to summary
public IRubyObject call(IRubyObject obj, boolean recur)