@Override final void releaseSnapshot(int start, int end) { if (workspace().granularity() == Granularity.ALL) { VersionMap map = snapshot().getVersionMaps()[start]; if (Debug.ENABLED) { Debug.assertion(_committed == map.getTransaction()); Debug.assertion(workspace().transaction() == _committed); } workspace().setTransaction(_previous); _committed = null; _previous = null; } super.releaseSnapshot(start, end); }
@Override Action onVisitingMap(int mapIndex) { Action action = super.onVisitingMap(mapIndex); if (action == Action.VISIT && workspace().granularity() == Granularity.ALL) { VersionMap map = snapshot().getVersionMaps()[mapIndex]; if (Debug.ENABLED) { Debug.assertion(map.getTransaction().getVersionMap() == map); Debug.assertion(map.getTransaction().getSnapshot().last() == map); } _committed = map.getTransaction(); _previous = workspace().transaction(); workspace().setTransaction(_committed); } return action; }