* Private helper for forEachLBCallMethod
* @param LoadBalancer $loadBalancer
* @param string $methodName
- * @param $args
+ * @param array $args
*/
function callMethod( $loadBalancer, $methodName, $args ) {
call_user_func_array( array( $loadBalancer, $methodName ), $args );
function commitMasterChanges() {
$this->forEachLBCallMethod( 'commitMasterChanges' );
}
+
+ /**
+ * Rollback changes on all master connections
+ * @since 1.23
+ */
+ function rollbackMasterChanges() {
+ $this->forEachLBCallMethod( 'rollbackMasterChanges' );
+ }
+
+ /**
+ * Detemine if any master connection has pending changes.
+ * @since 1.23
+ * @return bool
+ */
+ function hasMasterChanges() {
+ $ret = false;
+ $this->forEachLB( function ( $lb ) use ( &$ret ) {
+ $ret = $ret || $lb->hasMasterChanges();
+ } );
+ return $ret;
+ }
}
/**
* @return LoadBalancer
*/
function newMainLB( $wiki = false ) {
- global $wgDBservers, $wgMasterWaitTimeout;
+ global $wgDBservers;
if ( $wgDBservers ) {
$servers = $wgDBservers;
} else {
global $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, $wgDBtype, $wgDebugDumpSql;
global $wgDBssl, $wgDBcompress;
- $flags = ( $wgDebugDumpSql ? DBO_DEBUG : 0 ) | DBO_DEFAULT;
+ $flags = DBO_DEFAULT;
+ if ( $wgDebugDumpSql ) {
+ $flags |= DBO_DEBUG;
+ }
if ( $wgDBssl ) {
$flags |= DBO_SSL;
}
return new LoadBalancer( array(
'servers' => $servers,
- 'masterWaitTimeout' => $wgMasterWaitTimeout
) );
}