public function commitAll( $fname = __METHOD__ );
/**
- * Perform all pre-commit callbacks that remain part of the atomic transactions
- * and disable any post-commit callbacks until runMasterPostTrxCallbacks()
+ * Run pre-commit callbacks and defer execution of post-commit callbacks
*
* Use this only for mutli-database commits
+ *
+ * @return int Number of pre-commit callbacks run (since 1.32)
*/
public function finalizeMasterChanges();
public function commitMasterChanges( $fname = __METHOD__ );
/**
- * Issue all pending post-COMMIT/ROLLBACK callbacks
+ * Consume and run all pending post-COMMIT/ROLLBACK callbacks and commit dangling transactions
*
- * Use this only for mutli-database commits
+ * @return Exception|null The first exception or null if there were none
+ */
+ public function runMasterTransactionIdleCallbacks();
+
+ /**
+ * Run all recurring post-COMMIT/ROLLBACK listener callbacks
*
- * @param int $type IDatabase::TRIGGER_* constant
* @return Exception|null The first exception or null if there were none
*/
- public function runMasterPostTrxCallbacks( $type );
+ public function runMasterTransactionListenerCallbacks();
/**
* Issue ROLLBACK only on master, only if queries were done on connection
public function rollbackMasterChanges( $fname = __METHOD__ );
/**
- * Suppress all pending post-COMMIT/ROLLBACK callbacks
+ * Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshots
*
- * Use this only for mutli-database commits
- *
- * @return Exception|null The first exception or null if there were none
+ * @param string $fname Caller name
*/
- public function suppressTransactionEndCallbacks();
+ public function flushReplicaSnapshots( $fname = __METHOD__ );
/**
- * Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshot
+ * Commit all master DB transactions so as to flush any REPEATABLE-READ or SSI snapshots
+ *
+ * An error will be thrown if a connection has pending writes or callbacks
*
* @param string $fname Caller name
*/
- public function flushReplicaSnapshots( $fname = __METHOD__ );
+ public function flushMasterSnapshots( $fname = __METHOD__ );
/**
* @return bool Whether a master connection is already open
public function hasMasterConnection();
/**
- * Determine if there are pending changes in a transaction by this thread
+ * Whether there are pending changes or callbacks in a transaction by this thread
* @return bool
*/
public function hasMasterChanges();