commit method

void commit(
  1. TxnContextV2 ctx
)

Implementation

void commit(TxnContextV2 ctx) {
  // Silently ignore duplicate commits (idempotent).
  if (ctx.status == TxnStatus.committed) return;
  if (ctx.status == TxnStatus.aborted) {
    throw StateError('Cannot commit already-aborted txn ${ctx.txnId}');
  }
  ctx.status = TxnStatus.committed;
  _active.remove(ctx.txnId);
  committed.markCommitted(ctx.txnId);
  if (ctx.txnId > _lastCommitted) {
    _lastCommitted = ctx.txnId;
  }
  lockManager.releaseAll(ctx.locks);
  ctx.locks.clear();
  _asyncPersistCommitted();
}