Package org.jruby.runtime.ivars
Class StampedVariableAccessor
java.lang.Object
org.jruby.runtime.ivars.VariableAccessor
org.jruby.runtime.ivars.StampedVariableAccessor
A variable accessor that uses a stamped volatile int and Unsafe methods to
ensure thread-friendly table updating.
-
Field Summary
Fields inherited from class org.jruby.runtime.ivars.VariableAccessor
classId, DUMMY_ACCESSOR, index, name, realClass
-
Constructor Summary
ConstructorsConstructorDescriptionStampedVariableAccessor
(RubyClass realClass, String name, int index, int classId) Construct a new StampedVariableAccessor for the given "real" class, variable name, variable index, and class ID. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Set this variable into the given object using Unsafe to ensure safe updating of the variable table.static void
setVariableChecked
(RubyBasicObject self, RubyClass realClass, int index, Object value) Set the given variable index into the specified object.Methods inherited from class org.jruby.runtime.ivars.VariableAccessor
get, getClassId, getIndex, getName, getOrNil, getOrUndefined, getVariable, toString, verify
-
Constructor Details
-
StampedVariableAccessor
Construct a new StampedVariableAccessor for the given "real" class, variable name, variable index, and class ID.- Parameters:
realClass
- the "real" classname
- the variable's nameindex
- the variable's indexclassId
- the class's ID
-
-
Method Details
-
set
Set this variable into the given object using Unsafe to ensure safe updating of the variable table.- Overrides:
set
in classVariableAccessor
- Parameters:
object
- the object into which to set this variablevalue
- the variable's value
-
setVariableChecked
public static void setVariableChecked(RubyBasicObject self, RubyClass realClass, int index, Object value) Set the given variable index into the specified object. The "real" class and index are pass in to provide functional access. This version checks if self has been frozen before proceeding to set the variable.- Parameters:
self
- the object into which to set the variablerealClass
- the "real" class for the objectindex
- the index of the variablevalue
- the variable's value
-