rdbms: rename onTransactionIdle() to onTransactionCommitOrIdle()
authorAaron Schulz <aschulz@wikimedia.org>
Wed, 9 May 2018 02:28:39 +0000 (19:28 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Wed, 9 May 2018 21:07:06 +0000 (21:07 +0000)
This is clearer and is consistent with onTransactionPreCommitOrIdle()

Change-Id: I3a34a0e9adea69ec55ed6ddfef47703e31e7c3b5

12 files changed:
includes/auth/EmailNotificationSecondaryAuthenticationProvider.php
includes/auth/TemporaryPasswordPrimaryAuthenticationProvider.php
includes/changes/RecentChange.php
includes/jobqueue/JobQueueDB.php
includes/libs/rdbms/database/DBConnRef.php
includes/libs/rdbms/database/Database.php
includes/libs/rdbms/database/IDatabase.php
includes/profiler/output/ProfilerOutputDb.php
tests/phpunit/includes/db/LoadBalancerTest.php
tests/phpunit/includes/deferred/DeferredUpdatesTest.php
tests/phpunit/includes/libs/rdbms/database/DatabaseSQLTest.php
tests/phpunit/includes/libs/rdbms/database/DatabaseTest.php

index a485531..0878c34 100644 (file)
@@ -51,7 +51,7 @@ class EmailNotificationSecondaryAuthenticationProvider
                        && !$this->manager->getAuthenticationSessionData( 'no-email' )
                ) {
                        // TODO show 'confirmemail_oncreate'/'confirmemail_sendfailed' message
                        && !$this->manager->getAuthenticationSessionData( 'no-email' )
                ) {
                        // TODO show 'confirmemail_oncreate'/'confirmemail_sendfailed' message
-                       wfGetDB( DB_MASTER )->onTransactionIdle(
+                       wfGetDB( DB_MASTER )->onTransactionCommitOrIdle(
                                function () use ( $user ) {
                                        $user = $user->getInstanceForUpdate();
                                        $status = $user->sendConfirmationMail();
                                function () use ( $user ) {
                                        $user = $user->getInstanceForUpdate();
                                        $status = $user->sendConfirmationMail();
index 4a2d009..0ef13b3 100644 (file)
@@ -314,7 +314,7 @@ class TemporaryPasswordPrimaryAuthenticationProvider
 
                if ( $sendMail ) {
                        // Send email after DB commit
 
                if ( $sendMail ) {
                        // Send email after DB commit
-                       $dbw->onTransactionIdle(
+                       $dbw->onTransactionCommitOrIdle(
                                function () use ( $req ) {
                                        /** @var TemporaryPasswordAuthenticationRequest $req */
                                        $this->sendPasswordResetEmail( $req );
                                function () use ( $req ) {
                                        /** @var TemporaryPasswordAuthenticationRequest $req */
                                        $this->sendPasswordResetEmail( $req );
@@ -388,7 +388,7 @@ class TemporaryPasswordPrimaryAuthenticationProvider
 
                if ( $mailpassword ) {
                        // Send email after DB commit
 
                if ( $mailpassword ) {
                        // Send email after DB commit
-                       wfGetDB( DB_MASTER )->onTransactionIdle(
+                       wfGetDB( DB_MASTER )->onTransactionCommitOrIdle(
                                function () use ( $user, $creator, $req ) {
                                        $this->sendNewAccountEmail( $user, $creator, $req->password );
                                },
                                function () use ( $user, $creator, $req ) {
                                        $this->sendNewAccountEmail( $user, $creator, $req->password );
                                },
index eea8af3..cc9532e 100644 (file)
@@ -464,7 +464,7 @@ class RecentChange {
                        ) {
                                // @FIXME: This would be better as an extension hook
                                // Send emails or email jobs once this row is safely committed
                        ) {
                                // @FIXME: This would be better as an extension hook
                                // Send emails or email jobs once this row is safely committed
-                               $dbw->onTransactionIdle(
+                               $dbw->onTransactionCommitOrIdle(
                                        function () use ( $editor, $title ) {
                                                $enotif = new EmailNotification();
                                                $enotif->notifyOnPageChange(
                                        function () use ( $editor, $title ) {
                                                $enotif = new EmailNotification();
                                                $enotif->notifyOnPageChange(
index c3193c3..c13f539 100644 (file)
@@ -507,7 +507,7 @@ class JobQueueDB extends JobQueue {
                // jobs to become no-ops without any actual jobs that made them redundant.
                $dbw = $this->getMasterDB();
                $cache = $this->dupCache;
                // jobs to become no-ops without any actual jobs that made them redundant.
                $dbw = $this->getMasterDB();
                $cache = $this->dupCache;
-               $dbw->onTransactionIdle(
+               $dbw->onTransactionCommitOrIdle(
                        function () use ( $cache, $params, $key ) {
                                $timestamp = $cache->get( $key ); // current last timestamp of this job
                                if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
                        function () use ( $cache, $params, $key ) {
                                $timestamp = $cache->get( $key ); // current last timestamp of this job
                                if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
index 3432bff..9de16c4 100644 (file)
@@ -487,6 +487,10 @@ class DBConnRef implements IDatabase {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
+       public function onTransactionCommitOrIdle( callable $callback, $fname = __METHOD__ ) {
+               return $this->__call( __FUNCTION__, func_get_args() );
+       }
+
        public function onTransactionIdle( callable $callback, $fname = __METHOD__ ) {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
        public function onTransactionIdle( callable $callback, $fname = __METHOD__ ) {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
index 1517bd9..aeda5b9 100644 (file)
@@ -3292,7 +3292,7 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
                $this->trxEndCallbacks[] = [ $callback, $fname, $this->currentAtomicSectionId() ];
        }
 
                $this->trxEndCallbacks[] = [ $callback, $fname, $this->currentAtomicSectionId() ];
        }
 
-       final public function onTransactionIdle( callable $callback, $fname = __METHOD__ ) {
+       final public function onTransactionCommitOrIdle( callable $callback, $fname = __METHOD__ ) {
                if ( !$this->trxLevel && $this->getTransactionRoundId() ) {
                        // Start an implicit transaction similar to how query() does
                        $this->begin( __METHOD__, self::TRANSACTION_INTERNAL );
                if ( !$this->trxLevel && $this->getTransactionRoundId() ) {
                        // Start an implicit transaction similar to how query() does
                        $this->begin( __METHOD__, self::TRANSACTION_INTERNAL );
@@ -3305,6 +3305,10 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
                }
        }
 
                }
        }
 
+       final public function onTransactionIdle( callable $callback, $fname = __METHOD__ ) {
+               $this->onTransactionCommitOrIdle( $callback, $fname );
+       }
+
        final public function onTransactionPreCommitOrIdle( callable $callback, $fname = __METHOD__ ) {
                if ( !$this->trxLevel && $this->getTransactionRoundId() ) {
                        // Start an implicit transaction similar to how query() does
        final public function onTransactionPreCommitOrIdle( callable $callback, $fname = __METHOD__ ) {
                if ( !$this->trxLevel && $this->getTransactionRoundId() ) {
                        // Start an implicit transaction similar to how query() does
index 43e9751..ca3fd52 100644 (file)
@@ -1528,7 +1528,18 @@ interface IDatabase {
         *
         * @param callable $callback
         * @param string $fname Caller name
         *
         * @param callable $callback
         * @param string $fname Caller name
+        * @since 1.32
+        */
+       public function onTransactionCommitOrIdle( callable $callback, $fname = __METHOD__ );
+
+       /**
+        * Alias for onTransactionCommitOrIdle() for backwards-compatibility
+        *
+        * @param callable $callback
+        * @param string $fname
+        * @return mixed
         * @since 1.20
         * @since 1.20
+        * @deprecated Since 1.32
         */
        public function onTransactionIdle( callable $callback, $fname = __METHOD__ );
 
         */
        public function onTransactionIdle( callable $callback, $fname = __METHOD__ );
 
@@ -1567,7 +1578,7 @@ interface IDatabase {
         *
         * Registering a callback here will not affect writesOrCallbacks() pending.
         *
         *
         * Registering a callback here will not affect writesOrCallbacks() pending.
         *
-        * Since callbacks from this method or onTransactionIdle() can start and end transactions,
+        * Since callbacks from this or onTransactionCommitOrIdle() can start and end transactions,
         * a single call to IDatabase::commit might trigger multiple runs of the listener callbacks.
         *
         * @param string $name Callback name
         * a single call to IDatabase::commit might trigger multiple runs of the listener callbacks.
         *
         * @param string $name Callback name
index 1c3d479..6e0085d 100644 (file)
@@ -56,7 +56,7 @@ class ProfilerOutputDb extends ProfilerOutput {
                }
 
                $fname = __METHOD__;
                }
 
                $fname = __METHOD__;
-               $dbw->onTransactionIdle( function ( Database $dbw ) use ( $stats, $fname ) {
+               $dbw->onTransactionCommitOrIdle( function ( Database $dbw ) use ( $stats, $fname ) {
                        $pfhost = $this->perHost ? wfHostname() : '';
                        // Sqlite: avoid excess b-tree rebuilds (mostly for non-WAL mode)
                        // non-Sqlite: lower contention with small transactions
                        $pfhost = $this->perHost ? wfHostname() : '';
                        // Sqlite: avoid excess b-tree rebuilds (mostly for non-WAL mode)
                        // non-Sqlite: lower contention with small transactions
index 7462f1d..cf605c1 100644 (file)
@@ -365,13 +365,13 @@ class LoadBalancerTest extends MediaWikiTestCase {
                $tlCalls = 0;
                $lb->beginMasterChanges( __METHOD__ );
                $ac = array_fill_keys( [ 'a', 'b', 'c', 'd' ], 0 );
                $tlCalls = 0;
                $lb->beginMasterChanges( __METHOD__ );
                $ac = array_fill_keys( [ 'a', 'b', 'c', 'd' ], 0 );
-               $conn1->onTransactionIdle( function () use ( &$ac, $conn1, $conn2 ) {
+               $conn1->onTransactionCommitOrIdle( function () use ( &$ac, $conn1, $conn2 ) {
                        $ac['a'] = 1;
                        $ac['a'] = 1;
-                       $conn2->onTransactionIdle( function () use ( &$ac, $conn1, $conn2 ) {
+                       $conn2->onTransactionCommitOrIdle( function () use ( &$ac, $conn1, $conn2 ) {
                                $ac['b'] = 1;
                                $ac['b'] = 1;
-                               $conn1->onTransactionIdle( function () use ( &$ac, $conn1, $conn2 ) {
+                               $conn1->onTransactionCommitOrIdle( function () use ( &$ac, $conn1, $conn2 ) {
                                        $ac['c'] = 1;
                                        $ac['c'] = 1;
-                                       $conn1->onTransactionIdle( function () use ( &$ac, $conn1, $conn2 ) {
+                                       $conn1->onTransactionCommitOrIdle( function () use ( &$ac, $conn1, $conn2 ) {
                                                $ac['d'] = 1;
                                        } );
                                } );
                                                $ac['d'] = 1;
                                        } );
                                } );
index a1e41d9..3662c26 100644 (file)
@@ -358,7 +358,7 @@ class DeferredUpdatesTest extends MediaWikiTestCase {
                $this->assertEquals( [], $calls );
 
                $dbw = wfGetDB( DB_MASTER );
                $this->assertEquals( [], $calls );
 
                $dbw = wfGetDB( DB_MASTER );
-               $dbw->onTransactionIdle( function () use ( &$calls, $callback2 ) {
+               $dbw->onTransactionCommitOrIdle( function () use ( &$calls, $callback2 ) {
                        DeferredUpdates::addCallableUpdate( $callback2 );
                        $this->assertEquals( [], $calls );
                        $calls[] = 'oti';
                        DeferredUpdates::addCallableUpdate( $callback2 );
                        $this->assertEquals( [], $calls );
                        $calls[] = 'oti';
index 4596c76..b434396 100644 (file)
@@ -1453,7 +1453,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->assertLastSql( 'BEGIN; ROLLBACK' );
 
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->assertLastSql( 'BEGIN; ROLLBACK' );
 
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->cancelAtomic( __METHOD__ );
                $this->assertLastSql( 'BEGIN; ROLLBACK' );
 
                $this->database->cancelAtomic( __METHOD__ );
                $this->assertLastSql( 'BEGIN; ROLLBACK' );
 
@@ -1479,11 +1479,11 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                ] ) );
 
                $this->database->startAtomic( __METHOD__ . '_outer' );
                ] ) );
 
                $this->database->startAtomic( __METHOD__ . '_outer' );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
-               $this->database->onTransactionIdle( $callback2, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback2, __METHOD__ );
                $this->database->cancelAtomic( __METHOD__ );
                $this->database->cancelAtomic( __METHOD__ );
-               $this->database->onTransactionIdle( $callback3, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback3, __METHOD__ );
                $this->database->endAtomic( __METHOD__ . '_outer' );
                $this->assertLastSql( implode( "; ", [
                        'BEGIN',
                $this->database->endAtomic( __METHOD__ . '_outer' );
                $this->assertLastSql( implode( "; ", [
                        'BEGIN',
@@ -1640,7 +1640,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->endAtomic( __METHOD__ . '_inner' );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->endAtomic( __METHOD__ . '_inner' );
@@ -1658,7 +1658,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner', IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner', IDatabase::ATOMIC_CANCELABLE );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->endAtomic( __METHOD__ . '_inner' );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->endAtomic( __METHOD__ . '_inner' );
@@ -1676,7 +1676,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $atomicId = $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $atomicId = $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->cancelAtomic( __METHOD__, $atomicId );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->cancelAtomic( __METHOD__, $atomicId );
@@ -1691,7 +1691,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $atomicId = $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $atomicId = $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                try {
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                try {
@@ -1712,7 +1712,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->cancelAtomic( __METHOD__ . '_inner' );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $this->database->cancelAtomic( __METHOD__ . '_inner' );
@@ -1729,7 +1729,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
                $this->database->startAtomic( __METHOD__ . '_outer' );
                $this->database->startAtomic( __METHOD__, IDatabase::ATOMIC_CANCELABLE );
                $this->database->startAtomic( __METHOD__ . '_inner' );
-               $this->database->onTransactionIdle( $callback1, __METHOD__ );
+               $this->database->onTransactionCommitOrIdle( $callback1, __METHOD__ );
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $wrapper->trxStatus = Database::STATUS_TRX_ERROR;
                $this->database->onTransactionPreCommitOrIdle( $callback2, __METHOD__ );
                $this->database->onTransactionResolution( $callback3, __METHOD__ );
                $wrapper->trxStatus = Database::STATUS_TRX_ERROR;
@@ -1986,7 +1986,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
        public function testPrematureClose1() {
                $fname = __METHOD__;
                $this->database->begin( __METHOD__ );
        public function testPrematureClose1() {
                $fname = __METHOD__;
                $this->database->begin( __METHOD__ );
-               $this->database->onTransactionIdle( function () use ( $fname ) {
+               $this->database->onTransactionCommitOrIdle( function () use ( $fname ) {
                        $this->database->query( 'SELECT 1', $fname );
                } );
                $this->database->delete( 'x', [ 'field' => 3 ], __METHOD__ );
                        $this->database->query( 'SELECT 1', $fname );
                } );
                $this->database->delete( 'x', [ 'field' => 3 ], __METHOD__ );
@@ -2004,7 +2004,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                try {
                        $fname = __METHOD__;
                        $this->database->startAtomic( __METHOD__ );
                try {
                        $fname = __METHOD__;
                        $this->database->startAtomic( __METHOD__ );
-                       $this->database->onTransactionIdle( function () use ( $fname ) {
+                       $this->database->onTransactionCommitOrIdle( function () use ( $fname ) {
                                $this->database->query( 'SELECT 1', $fname );
                        } );
                        $this->database->delete( 'x', [ 'field' => 3 ], __METHOD__ );
                                $this->database->query( 'SELECT 1', $fname );
                        } );
                        $this->database->delete( 'x', [ 'field' => 3 ], __METHOD__ );
index f08b376..3f0dae6 100644 (file)
@@ -172,7 +172,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
        }
 
        /**
        }
 
        /**
-        * @covers Wikimedia\Rdbms\Database::onTransactionIdle
+        * @covers Wikimedia\Rdbms\Database::onTransactionCommitOrIdle
         * @covers Wikimedia\Rdbms\Database::runOnTransactionIdleCallbacks
         */
        public function testTransactionIdle() {
         * @covers Wikimedia\Rdbms\Database::runOnTransactionIdleCallbacks
         */
        public function testTransactionIdle() {
@@ -186,7 +186,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                        $flagSet = $db->getFlag( DBO_TRX );
                };
 
                        $flagSet = $db->getFlag( DBO_TRX );
                };
 
-               $db->onTransactionIdle( $callback, __METHOD__ );
+               $db->onTransactionCommitOrIdle( $callback, __METHOD__ );
                $this->assertTrue( $called, 'Callback reached' );
                $this->assertFalse( $flagSet, 'DBO_TRX off in callback' );
                $this->assertFalse( $db->getFlag( DBO_TRX ), 'DBO_TRX still default' );
                $this->assertTrue( $called, 'Callback reached' );
                $this->assertFalse( $flagSet, 'DBO_TRX off in callback' );
                $this->assertFalse( $db->getFlag( DBO_TRX ), 'DBO_TRX still default' );
@@ -194,7 +194,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                $flagSet = null;
                $called = false;
                $db->startAtomic( __METHOD__ );
                $flagSet = null;
                $called = false;
                $db->startAtomic( __METHOD__ );
-               $db->onTransactionIdle( $callback, __METHOD__ );
+               $db->onTransactionCommitOrIdle( $callback, __METHOD__ );
                $this->assertFalse( $called, 'Callback not reached during TRX' );
                $db->endAtomic( __METHOD__ );
 
                $this->assertFalse( $called, 'Callback not reached during TRX' );
                $db->endAtomic( __METHOD__ );
 
@@ -203,7 +203,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                $this->assertFalse( $db->getFlag( DBO_TRX ), 'DBO_TRX restored to default' );
 
                $db->clearFlag( DBO_TRX );
                $this->assertFalse( $db->getFlag( DBO_TRX ), 'DBO_TRX restored to default' );
 
                $db->clearFlag( DBO_TRX );
-               $db->onTransactionIdle(
+               $db->onTransactionCommitOrIdle(
                        function ( $trigger, IDatabase $db ) {
                                $db->setFlag( DBO_TRX );
                        },
                        function ( $trigger, IDatabase $db ) {
                                $db->setFlag( DBO_TRX );
                        },
@@ -213,7 +213,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
        }
 
        /**
        }
 
        /**
-        * @covers Wikimedia\Rdbms\Database::onTransactionIdle
+        * @covers Wikimedia\Rdbms\Database::onTransactionCommitOrIdle
         * @covers Wikimedia\Rdbms\Database::runOnTransactionIdleCallbacks
         */
        public function testTransactionIdle_TRX() {
         * @covers Wikimedia\Rdbms\Database::runOnTransactionIdleCallbacks
         */
        public function testTransactionIdle_TRX() {
@@ -237,14 +237,14 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                        $flagSet = $db->getFlag( DBO_TRX );
                };
 
                        $flagSet = $db->getFlag( DBO_TRX );
                };
 
-               $db->onTransactionIdle( $callback, __METHOD__ );
+               $db->onTransactionCommitOrIdle( $callback, __METHOD__ );
                $this->assertTrue( $called, 'Called when idle if DBO_TRX is set' );
                $this->assertFalse( $flagSet, 'DBO_TRX off in callback' );
                $this->assertTrue( $db->getFlag( DBO_TRX ), 'DBO_TRX still default' );
 
                $called = false;
                $lbFactory->beginMasterChanges( __METHOD__ );
                $this->assertTrue( $called, 'Called when idle if DBO_TRX is set' );
                $this->assertFalse( $flagSet, 'DBO_TRX off in callback' );
                $this->assertTrue( $db->getFlag( DBO_TRX ), 'DBO_TRX still default' );
 
                $called = false;
                $lbFactory->beginMasterChanges( __METHOD__ );
-               $db->onTransactionIdle( $callback, __METHOD__ );
+               $db->onTransactionCommitOrIdle( $callback, __METHOD__ );
                $this->assertFalse( $called, 'Not called when lb-transaction is active' );
 
                $lbFactory->commitMasterChanges( __METHOD__ );
                $this->assertFalse( $called, 'Not called when lb-transaction is active' );
 
                $lbFactory->commitMasterChanges( __METHOD__ );
@@ -252,7 +252,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
 
                $called = false;
                $lbFactory->beginMasterChanges( __METHOD__ );
 
                $called = false;
                $lbFactory->beginMasterChanges( __METHOD__ );
-               $db->onTransactionIdle( $callback, __METHOD__ );
+               $db->onTransactionCommitOrIdle( $callback, __METHOD__ );
                $this->assertFalse( $called, 'Not called when lb-transaction is active' );
 
                $lbFactory->rollbackMasterChanges( __METHOD__ );
                $this->assertFalse( $called, 'Not called when lb-transaction is active' );
 
                $lbFactory->rollbackMasterChanges( __METHOD__ );