private CancellationToken m_cancellation; //PERF: readonly struct #endregion #region Constructors... internal FdbTransaction(FdbDatabase db, FdbOperationContext context, int id, IFdbTransactionHandler handler, FdbTransactionMode mode) { Contract.Requires(db != null && context != null && handler != null); Contract.Requires(context.Database != null); m_context = context; m_database = db; m_id = id; //REVIEW: the operation context may already have created its own CTS, maybe we can merge them ? m_cts = CancellationTokenSource.CreateLinkedTokenSource(context.Cancellation); m_cancellation = m_cts.Token; m_readOnly = (mode & FdbTransactionMode.ReadOnly) != 0; m_handler = handler; }