コード例 #1
0
ファイル: Notifier.java プロジェクト: stoneroses/objectfabric
  @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);
  }
コード例 #2
0
ファイル: Notifier.java プロジェクト: stoneroses/objectfabric
  @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;
  }