| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| private static boolean | Returns: whether the update was successful, for CAS retryingthe object into which to set the variable self, int the current variable table stamp currentStamp, RubyClass the "real" class for the object realClass, Object[] the current table currentTable, int the index of the variable index, Object the variable's value value)Create or expand a variable table for the given object, using atomic operations to ensure visibility. |
| public static void | setVariableAtomic(RubyBasicObject
the object into which to set the variable self, RubyClass the "real" class for the object realClass, boolean if a full memory fence should be forced after updating the variable's value fullFence, int the index of the variable index, Object the variable's value value)Set the given variable index into the specified object using atomic semantics. |
| private static boolean | Returns: whether the update was successful, for CAS retryingthe object into which to set the variable self, int the current variable table stamp currentStamp, Object[] the current table currentTable, int the index of the variable index, Object the variable's value value)Update the given variable table for the given object, using atomic operations to ensure visibility. |
| AtomicVariableTable | back to summary |
|---|---|
| public AtomicVariableTable() | |
| createTableAtomic | back to summary |
|---|---|
| private static boolean createTableAtomic(RubyBasicObject self, int currentStamp, RubyClass realClass, Object[] currentTable, int index, Object value) Create or expand a variable table for the given object, using atomic operations to ensure visibility.
| |
| setVariableAtomic | back to summary |
|---|---|
| public static void setVariableAtomic(RubyBasicObject self, RubyClass realClass, boolean fullFence, int index, Object value) Set the given variable index into the specified object using atomic semantics. The "real" class and index are pass in to provide functional access.
| |
| updateTableAtomic | back to summary |
|---|---|
| private static boolean updateTableAtomic(RubyBasicObject self, int currentStamp, Object[] currentTable, int index, Object value) Update the given variable table for the given object, using atomic operations to ensure visibility.
| |