public void beginStep() {
        // TODO: probably, we don't need to synchronize data here,
        // because this method is always called from the same thread
        // Synchronize all cached data
        synchronized (readData) {
            synchronized (writeData) {
                super.beginStep();
            }
        }
    }
public void beginStep() {
       
       
       
        synchronized (readData) {
            synchronized (writeData) {
                super.beginStep();
            }
        }
    }
public void beginstep() { synchronized (readdata) { synchronized (writedata) { super.beginstep(); } } }