X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Ffilebackend%2Flockmanager%2FLockManagerGroup.php;h=1e66e6e011f58dd29261cc267e568b27bf12b19b;hp=602b876b8ad81007574af2e74557815b27da4408;hb=ce079cf6ad79ca8d3360817f809b219d166f9153;hpb=ae69acacf567077b3f49d1fe6c3f3770e72a9093 diff --git a/includes/filebackend/lockmanager/LockManagerGroup.php b/includes/filebackend/lockmanager/LockManagerGroup.php index 602b876b8a..1e66e6e011 100644 --- a/includes/filebackend/lockmanager/LockManagerGroup.php +++ b/includes/filebackend/lockmanager/LockManagerGroup.php @@ -20,6 +20,8 @@ * @file * @ingroup LockManager */ +use MediaWiki\MediaWikiServices; +use MediaWiki\Logger\LoggerFactory; /** * Class to handle file lock manager registration @@ -29,7 +31,7 @@ * @since 1.19 */ class LockManagerGroup { - /** @var array (domain => LockManager) */ + /** @var LockManagerGroup[] (domain => LockManagerGroup) */ protected static $instances = []; protected $domain; // string; domain (usually wiki ID) @@ -115,6 +117,16 @@ class LockManagerGroup { if ( !isset( $this->managers[$name]['instance'] ) ) { $class = $this->managers[$name]['class']; $config = $this->managers[$name]['config']; + if ( $class === 'DBLockManager' ) { + $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); + $lb = $lbFactory->newMainLB( $config['domain'] ); + $dbw = $lb->getLazyConnectionRef( DB_MASTER, [], $config['domain'] ); + + $config['dbServers']['localDBMaster'] = $dbw; + $config['srvCache'] = ObjectCache::getLocalServerInstance( 'hash' ); + } + $config['logger'] = LoggerFactory::getInstance( 'LockManager' ); + $this->managers[$name]['instance'] = new $class( $config ); }