public class ObjectSpace
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
private class |
ObjectSpace.GroupSweeper |
private static class |
ObjectSpace.IdReference |
private static class |
ObjectSpace.ObjectGroup |
private class |
ObjectSpace.WeakReferenceListNode<T> |
| Modifier and Type | Field and Description |
|---|---|
private java.lang.ThreadLocal<java.lang.ref.Reference<ObjectSpace.ObjectGroup>> |
currentObjectGroup |
private java.lang.ref.ReferenceQueue |
deadIdentityReferences |
private java.lang.ref.ReferenceQueue<java.lang.Object> |
deadReferences |
private java.lang.ref.Reference<ObjectSpace.GroupSweeper> |
groupSweeperReference |
private java.util.Map |
identities |
private java.util.Map |
identitiesByObject |
private static java.util.concurrent.atomic.AtomicLong |
maxId |
private java.lang.ref.ReferenceQueue<ObjectSpace.ObjectGroup> |
objectGroupReferenceQueue |
private ObjectSpace.WeakReferenceListNode |
top |
| Constructor and Description |
|---|
ObjectSpace() |
| Modifier and Type | Method and Description |
|---|---|
void |
add(IRubyObject object) |
void |
addFinalizer(IRubyObject object,
IRubyObject proc) |
private void |
addIndividualWeakReference(IRubyObject object) |
private ObjectSpace.ObjectGroup |
addObjectGroup() |
static long |
calculateObjectId(java.lang.Object object) |
private void |
cleanIdentities() |
private void |
cleanup(java.lang.ref.ReferenceQueue<?> referenceQueue) |
long |
createAndRegisterObjectId(IRubyObject rubyObject) |
private long |
createId(IRubyObject object) |
private ObjectSpace.ObjectGroup |
getObjectGroup() |
IRubyObject |
id2ref(long id) |
long |
idOf(IRubyObject rubyObject)
Deprecated.
|
java.util.Iterator |
iterator(RubyModule rubyClass) |
private void |
registerGroupSweeper() |
void |
registerObjectId(long id,
IRubyObject object) |
void |
removeFinalizers(long id) |
private void |
splitObjectGroups() |
private final java.lang.ref.ReferenceQueue<java.lang.Object> deadReferences
private final java.lang.ref.ReferenceQueue<ObjectSpace.ObjectGroup> objectGroupReferenceQueue
private ObjectSpace.WeakReferenceListNode top
private java.lang.ref.ReferenceQueue deadIdentityReferences
private final java.util.Map identities
private final java.util.Map identitiesByObject
private static final java.util.concurrent.atomic.AtomicLong maxId
private final java.lang.ThreadLocal<java.lang.ref.Reference<ObjectSpace.ObjectGroup>> currentObjectGroup
private java.lang.ref.Reference<ObjectSpace.GroupSweeper> groupSweeperReference
public void registerObjectId(long id,
IRubyObject object)
public static long calculateObjectId(java.lang.Object object)
public long createAndRegisterObjectId(IRubyObject rubyObject)
private long createId(IRubyObject object)
public IRubyObject id2ref(long id)
private void cleanIdentities()
@Deprecated public long idOf(IRubyObject rubyObject)
public void addFinalizer(IRubyObject object, IRubyObject proc)
public void removeFinalizers(long id)
public void add(IRubyObject object)
private void addIndividualWeakReference(IRubyObject object)
private void registerGroupSweeper()
private void splitObjectGroups()
public java.util.Iterator iterator(RubyModule rubyClass)
private void cleanup(java.lang.ref.ReferenceQueue<?> referenceQueue)
private ObjectSpace.ObjectGroup getObjectGroup()
private ObjectSpace.ObjectGroup addObjectGroup()