|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object sofya.ed.semantic.EventFilter sofya.ed.semantic.EventSelectionFilter sofya.apps.atomicity.DynamicEscapeDetector
public final class DynamicEscapeDetector
Implements the dynamic escape detection algorithm as described by Stoller and Wang.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface sofya.ed.semantic.EventListener |
---|
EventListener.Arguments, EventListener.CallData, EventListener.ExceptionData, EventListener.FieldData, EventListener.MethodData, EventListener.MonitorData, EventListener.NewAllocationData, EventListener.ObjectData, EventListener.ThreadData, EventListener.ThreadStatus |
Field Summary |
---|
Fields inherited from class sofya.ed.semantic.EventFilter |
---|
listenerCount, listeners |
Constructor Summary | |
---|---|
DynamicEscapeDetector()
Creates a new dynamic escape detector. |
Method Summary | |
---|---|
void |
constructorEnterEvent(EventListener.ThreadData td,
EventListener.ObjectData od,
EventListener.MethodData md)
Notification that a constructor was entered. |
void |
instanceFieldWriteEvent(EventListener.ThreadData td,
EventListener.ObjectData od,
EventListener.FieldData fd)
Notification that an instance field was written. |
void |
interfaceCallEvent(EventListener.ThreadData td,
EventListener.CallData cd)
Notification that an interface method was called. |
boolean |
isEscaped(long objectId)
Reports whether an given object has escaped from its creating thread. |
void |
staticCallEvent(EventListener.ThreadData td,
EventListener.CallData cd)
Notification that a static method was called. |
void |
staticFieldWriteEvent(EventListener.ThreadData td,
EventListener.FieldData fd)
Notification that a static field was written. |
void |
threadStartEvent(EventListener.ThreadData td)
Notification that a thread has started. |
void |
virtualCallEvent(EventListener.ThreadData td,
EventListener.CallData cd)
Notification that a virtual method was called. |
Methods inherited from class sofya.ed.semantic.EventFilter |
---|
addEventListener, ensureCapacity, removeEventListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DynamicEscapeDetector()
Method Detail |
---|
public boolean isEscaped(long objectId)
objectId
- ID of the object that should be checked for
escape.
true
if the object has escaped (may be
accessible by more than one thread).public void threadStartEvent(EventListener.ThreadData td)
EventListener
threadStartEvent
in interface EventListener
threadStartEvent
in class EventSelectionFilter
td
- Information about the newly started thread.public void instanceFieldWriteEvent(EventListener.ThreadData td, EventListener.ObjectData od, EventListener.FieldData fd)
EventListener
instanceFieldWriteEvent
in interface EventListener
instanceFieldWriteEvent
in class EventSelectionFilter
td
- Information about the thread in which the field write
occurred.od
- Information about the object which owns the written field.fd
- Information about the written field.public void staticFieldWriteEvent(EventListener.ThreadData td, EventListener.FieldData fd)
EventListener
staticFieldWriteEvent
in interface EventListener
staticFieldWriteEvent
in class EventSelectionFilter
td
- Information about the thread in which the field write
occurred.fd
- Information about the written field.public void staticCallEvent(EventListener.ThreadData td, EventListener.CallData cd)
EventListener
staticCallEvent
in interface EventListener
staticCallEvent
in class EventSelectionFilter
td
- Information about the thread which called the method.cd
- Information about the called method.public void virtualCallEvent(EventListener.ThreadData td, EventListener.CallData cd)
EventListener
virtualCallEvent
in interface EventListener
virtualCallEvent
in class EventSelectionFilter
td
- Information about the thread which called the method.cd
- Information about the called method.public void interfaceCallEvent(EventListener.ThreadData td, EventListener.CallData cd)
EventListener
interfaceCallEvent
in interface EventListener
interfaceCallEvent
in class EventSelectionFilter
td
- Information about the thread which called the method.cd
- Information about the called method.public void constructorEnterEvent(EventListener.ThreadData td, EventListener.ObjectData od, EventListener.MethodData md)
EventListener
This is the first point during the object creation process at which the object can be uniquely identified.
constructorEnterEvent
in interface EventListener
constructorEnterEvent
in class EventSelectionFilter
td
- Information about the thread executing the constructor.od
- Information about the object under construction.
At the time of this event, only the object ID will be
valid.md
- Information about the entered constructor.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |