cz.vutbr.fit.racedetector
Class Eraser

java.lang.Object
  extended by cz.vutbr.fit.racedetector.Eraser
All Implemented Interfaces:
com.ibm.contest.runtime.AfterArrayCellReadListener, com.ibm.contest.runtime.AfterArrayCellWriteListener, com.ibm.contest.runtime.AfterJoinListener, com.ibm.contest.runtime.AfterMonitorExitListener, com.ibm.contest.runtime.AfterVarReadListener, com.ibm.contest.runtime.AfterVarWriteListener, com.ibm.contest.runtime.BeforeArrayCellReadListener, com.ibm.contest.runtime.BeforeArrayCellWriteListener, com.ibm.contest.runtime.BeforeMonitorEnterListener, com.ibm.contest.runtime.BeforeVarReadListener, com.ibm.contest.runtime.BeforeVarWriteListener, com.ibm.contest.runtime.ThreadBeginListener, com.ibm.contest.runtime.ThreadEndListener

public class Eraser
extends java.lang.Object
implements com.ibm.contest.runtime.ThreadBeginListener, com.ibm.contest.runtime.ThreadEndListener, com.ibm.contest.runtime.BeforeVarReadListener, com.ibm.contest.runtime.BeforeVarWriteListener, com.ibm.contest.runtime.BeforeArrayCellReadListener, com.ibm.contest.runtime.BeforeArrayCellWriteListener, com.ibm.contest.runtime.BeforeMonitorEnterListener, com.ibm.contest.runtime.AfterMonitorExitListener, com.ibm.contest.runtime.AfterJoinListener, com.ibm.contest.runtime.AfterVarReadListener, com.ibm.contest.runtime.AfterVarWriteListener, com.ibm.contest.runtime.AfterArrayCellReadListener, com.ibm.contest.runtime.AfterArrayCellWriteListener


Field Summary
(package private)  EraserDetect detector
          Reference to the code performing detection.
(package private)  RaceDetector raceDetect
          Reference to the main class enclosing
 
Constructor Summary
Eraser()
           
 
Method Summary
 void afterBooleanVarReadEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, boolean value)
           
 void afterBooleanVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, boolean value)
           
 void afterDoubleArrayCellReadEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, double value)
           
 void afterDoubleArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, double value)
           
 void afterDoubleVarReadEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, double value)
           
 void afterDoubleVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, double value)
           
 void afterFloatArrayCellReadEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, float value)
           
 void afterFloatArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, float value)
           
 void afterFloatVarReadEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, float value)
           
 void afterFloatVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, float value)
           
 void afterIntegralArrayCellReadEvent(java.lang.String programLocation, java.lang.Object arrayRef, int type, int index, long value)
           
 void afterIntegralArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int type, int index, long value)
           
 void afterIntegralVarReadEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, long value, int varType)
           
 void afterIntegralVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, long value, int varType)
           
 void afterJoinEvent(java.lang.String programLocation, java.lang.Thread target, long timeout, int nanos, java.lang.Exception e)
           
 void afterMonitorExitEvent(java.lang.String programLocation, java.lang.Object lock)
          When synchronization lock is released by thread - update sets of locks.
 void afterRefArrayCellReadEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, java.lang.Object value)
           
 void afterRefArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, java.lang.Object value)
           
 void afterRefVarReadEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, java.lang.Object value, java.lang.String varType)
           
 void afterRefVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, java.lang.Object value, java.lang.String varType)
           
 void beforeArrayCellReadEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index)
           
 void beforeBooleanVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, boolean value)
           
 void beforeDoubleArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, double value)
           
 void beforeDoubleVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, double value)
           
 void beforeFloatArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, float value)
           
 void beforeFloatVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, float value)
           
 void beforeIntegralArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int type, int index, long value)
           
 void beforeIntegralVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, long value, int varType)
           
 void beforeMonitorEnterEvent(java.lang.String programLocation, java.lang.Object lock)
          When synchronization lock is achieved by thread - update sets of locks.
 void beforeRefArrayCellWriteEvent(java.lang.String programLocation, java.lang.Object arrayRef, int index, java.lang.Object value)
           
 void beforeRefVarWriteEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, java.lang.Object value, java.lang.String varType)
           
 void beforeVarReadEvent(java.lang.String programLocation, java.lang.String varName, java.lang.Object instance, java.lang.String varType)
           
 void threadBeginEvent(java.lang.String programLocation)
          When new Thread has started.
 void threadEndEvent()
          When Thread has terminated.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

detector

EraserDetect detector
Reference to the code performing detection.


raceDetect

RaceDetector raceDetect
Reference to the main class enclosing

Constructor Detail

Eraser

public Eraser()
Method Detail

beforeMonitorEnterEvent

public void beforeMonitorEnterEvent(java.lang.String programLocation,
                                    java.lang.Object lock)
When synchronization lock is achieved by thread - update sets of locks.

Specified by:
beforeMonitorEnterEvent in interface com.ibm.contest.runtime.BeforeMonitorEnterListener

afterMonitorExitEvent

public void afterMonitorExitEvent(java.lang.String programLocation,
                                  java.lang.Object lock)
When synchronization lock is released by thread - update sets of locks.

Specified by:
afterMonitorExitEvent in interface com.ibm.contest.runtime.AfterMonitorExitListener

threadBeginEvent

public void threadBeginEvent(java.lang.String programLocation)
When new Thread has started.

Specified by:
threadBeginEvent in interface com.ibm.contest.runtime.ThreadBeginListener

threadEndEvent

public void threadEndEvent()
When Thread has terminated.

Specified by:
threadEndEvent in interface com.ibm.contest.runtime.ThreadEndListener

afterJoinEvent

public void afterJoinEvent(java.lang.String programLocation,
                           java.lang.Thread target,
                           long timeout,
                           int nanos,
                           java.lang.Exception e)
Specified by:
afterJoinEvent in interface com.ibm.contest.runtime.AfterJoinListener

beforeVarReadEvent

public void beforeVarReadEvent(java.lang.String programLocation,
                               java.lang.String varName,
                               java.lang.Object instance,
                               java.lang.String varType)
Specified by:
beforeVarReadEvent in interface com.ibm.contest.runtime.BeforeVarReadListener

beforeArrayCellReadEvent

public void beforeArrayCellReadEvent(java.lang.String programLocation,
                                     java.lang.Object arrayRef,
                                     int index)
Specified by:
beforeArrayCellReadEvent in interface com.ibm.contest.runtime.BeforeArrayCellReadListener

afterBooleanVarReadEvent

public void afterBooleanVarReadEvent(java.lang.String programLocation,
                                     java.lang.String varName,
                                     java.lang.Object instance,
                                     boolean value)
Specified by:
afterBooleanVarReadEvent in interface com.ibm.contest.runtime.AfterVarReadListener

afterDoubleVarReadEvent

public void afterDoubleVarReadEvent(java.lang.String programLocation,
                                    java.lang.String varName,
                                    java.lang.Object instance,
                                    double value)
Specified by:
afterDoubleVarReadEvent in interface com.ibm.contest.runtime.AfterVarReadListener

afterFloatVarReadEvent

public void afterFloatVarReadEvent(java.lang.String programLocation,
                                   java.lang.String varName,
                                   java.lang.Object instance,
                                   float value)
Specified by:
afterFloatVarReadEvent in interface com.ibm.contest.runtime.AfterVarReadListener

afterIntegralVarReadEvent

public void afterIntegralVarReadEvent(java.lang.String programLocation,
                                      java.lang.String varName,
                                      java.lang.Object instance,
                                      long value,
                                      int varType)
Specified by:
afterIntegralVarReadEvent in interface com.ibm.contest.runtime.AfterVarReadListener

afterRefVarReadEvent

public void afterRefVarReadEvent(java.lang.String programLocation,
                                 java.lang.String varName,
                                 java.lang.Object instance,
                                 java.lang.Object value,
                                 java.lang.String varType)
Specified by:
afterRefVarReadEvent in interface com.ibm.contest.runtime.AfterVarReadListener

beforeBooleanVarWriteEvent

public void beforeBooleanVarWriteEvent(java.lang.String programLocation,
                                       java.lang.String varName,
                                       java.lang.Object instance,
                                       boolean value)
Specified by:
beforeBooleanVarWriteEvent in interface com.ibm.contest.runtime.BeforeVarWriteListener

beforeDoubleVarWriteEvent

public void beforeDoubleVarWriteEvent(java.lang.String programLocation,
                                      java.lang.String varName,
                                      java.lang.Object instance,
                                      double value)
Specified by:
beforeDoubleVarWriteEvent in interface com.ibm.contest.runtime.BeforeVarWriteListener

beforeFloatVarWriteEvent

public void beforeFloatVarWriteEvent(java.lang.String programLocation,
                                     java.lang.String varName,
                                     java.lang.Object instance,
                                     float value)
Specified by:
beforeFloatVarWriteEvent in interface com.ibm.contest.runtime.BeforeVarWriteListener

beforeIntegralVarWriteEvent

public void beforeIntegralVarWriteEvent(java.lang.String programLocation,
                                        java.lang.String varName,
                                        java.lang.Object instance,
                                        long value,
                                        int varType)
Specified by:
beforeIntegralVarWriteEvent in interface com.ibm.contest.runtime.BeforeVarWriteListener

beforeRefVarWriteEvent

public void beforeRefVarWriteEvent(java.lang.String programLocation,
                                   java.lang.String varName,
                                   java.lang.Object instance,
                                   java.lang.Object value,
                                   java.lang.String varType)
Specified by:
beforeRefVarWriteEvent in interface com.ibm.contest.runtime.BeforeVarWriteListener

beforeDoubleArrayCellWriteEvent

public void beforeDoubleArrayCellWriteEvent(java.lang.String programLocation,
                                            java.lang.Object arrayRef,
                                            int index,
                                            double value)
Specified by:
beforeDoubleArrayCellWriteEvent in interface com.ibm.contest.runtime.BeforeArrayCellWriteListener

beforeFloatArrayCellWriteEvent

public void beforeFloatArrayCellWriteEvent(java.lang.String programLocation,
                                           java.lang.Object arrayRef,
                                           int index,
                                           float value)
Specified by:
beforeFloatArrayCellWriteEvent in interface com.ibm.contest.runtime.BeforeArrayCellWriteListener

beforeIntegralArrayCellWriteEvent

public void beforeIntegralArrayCellWriteEvent(java.lang.String programLocation,
                                              java.lang.Object arrayRef,
                                              int type,
                                              int index,
                                              long value)
Specified by:
beforeIntegralArrayCellWriteEvent in interface com.ibm.contest.runtime.BeforeArrayCellWriteListener

beforeRefArrayCellWriteEvent

public void beforeRefArrayCellWriteEvent(java.lang.String programLocation,
                                         java.lang.Object arrayRef,
                                         int index,
                                         java.lang.Object value)
Specified by:
beforeRefArrayCellWriteEvent in interface com.ibm.contest.runtime.BeforeArrayCellWriteListener

afterDoubleArrayCellReadEvent

public void afterDoubleArrayCellReadEvent(java.lang.String programLocation,
                                          java.lang.Object arrayRef,
                                          int index,
                                          double value)
Specified by:
afterDoubleArrayCellReadEvent in interface com.ibm.contest.runtime.AfterArrayCellReadListener

afterFloatArrayCellReadEvent

public void afterFloatArrayCellReadEvent(java.lang.String programLocation,
                                         java.lang.Object arrayRef,
                                         int index,
                                         float value)
Specified by:
afterFloatArrayCellReadEvent in interface com.ibm.contest.runtime.AfterArrayCellReadListener

afterIntegralArrayCellReadEvent

public void afterIntegralArrayCellReadEvent(java.lang.String programLocation,
                                            java.lang.Object arrayRef,
                                            int type,
                                            int index,
                                            long value)
Specified by:
afterIntegralArrayCellReadEvent in interface com.ibm.contest.runtime.AfterArrayCellReadListener

afterRefArrayCellReadEvent

public void afterRefArrayCellReadEvent(java.lang.String programLocation,
                                       java.lang.Object arrayRef,
                                       int index,
                                       java.lang.Object value)
Specified by:
afterRefArrayCellReadEvent in interface com.ibm.contest.runtime.AfterArrayCellReadListener

afterBooleanVarWriteEvent

public void afterBooleanVarWriteEvent(java.lang.String programLocation,
                                      java.lang.String varName,
                                      java.lang.Object instance,
                                      boolean value)
Specified by:
afterBooleanVarWriteEvent in interface com.ibm.contest.runtime.AfterVarWriteListener

afterDoubleVarWriteEvent

public void afterDoubleVarWriteEvent(java.lang.String programLocation,
                                     java.lang.String varName,
                                     java.lang.Object instance,
                                     double value)
Specified by:
afterDoubleVarWriteEvent in interface com.ibm.contest.runtime.AfterVarWriteListener

afterFloatVarWriteEvent

public void afterFloatVarWriteEvent(java.lang.String programLocation,
                                    java.lang.String varName,
                                    java.lang.Object instance,
                                    float value)
Specified by:
afterFloatVarWriteEvent in interface com.ibm.contest.runtime.AfterVarWriteListener

afterIntegralVarWriteEvent

public void afterIntegralVarWriteEvent(java.lang.String programLocation,
                                       java.lang.String varName,
                                       java.lang.Object instance,
                                       long value,
                                       int varType)
Specified by:
afterIntegralVarWriteEvent in interface com.ibm.contest.runtime.AfterVarWriteListener

afterRefVarWriteEvent

public void afterRefVarWriteEvent(java.lang.String programLocation,
                                  java.lang.String varName,
                                  java.lang.Object instance,
                                  java.lang.Object value,
                                  java.lang.String varType)
Specified by:
afterRefVarWriteEvent in interface com.ibm.contest.runtime.AfterVarWriteListener

afterDoubleArrayCellWriteEvent

public void afterDoubleArrayCellWriteEvent(java.lang.String programLocation,
                                           java.lang.Object arrayRef,
                                           int index,
                                           double value)
Specified by:
afterDoubleArrayCellWriteEvent in interface com.ibm.contest.runtime.AfterArrayCellWriteListener

afterFloatArrayCellWriteEvent

public void afterFloatArrayCellWriteEvent(java.lang.String programLocation,
                                          java.lang.Object arrayRef,
                                          int index,
                                          float value)
Specified by:
afterFloatArrayCellWriteEvent in interface com.ibm.contest.runtime.AfterArrayCellWriteListener

afterIntegralArrayCellWriteEvent

public void afterIntegralArrayCellWriteEvent(java.lang.String programLocation,
                                             java.lang.Object arrayRef,
                                             int type,
                                             int index,
                                             long value)
Specified by:
afterIntegralArrayCellWriteEvent in interface com.ibm.contest.runtime.AfterArrayCellWriteListener

afterRefArrayCellWriteEvent

public void afterRefArrayCellWriteEvent(java.lang.String programLocation,
                                        java.lang.Object arrayRef,
                                        int index,
                                        java.lang.Object value)
Specified by:
afterRefArrayCellWriteEvent in interface com.ibm.contest.runtime.AfterArrayCellWriteListener