X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FForkController.php;h=cc16964e1fdd36a24d9f030692c49f393ce5c6f0;hb=89b21847e151be15c41e667fa2a910ffbb72cf7d;hp=05822302efaa58aaebd4fd13d215f6a811266132;hpb=f0edb3e368a5fc69218d20f76f1538b68f37db42;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ForkController.php b/includes/ForkController.php index 05822302ef..cc16964e1f 100644 --- a/includes/ForkController.php +++ b/includes/ForkController.php @@ -19,6 +19,7 @@ * * @file */ +use MediaWiki\MediaWikiServices; /** * Class for managing forking command line scripts. @@ -30,11 +31,11 @@ * @ingroup Maintenance */ class ForkController { - protected $children = array(), $childNumber = 0; + protected $children = [], $childNumber = 0; protected $termReceived = false; protected $flags = 0, $procsToStart = 0; - protected static $restartableSignals = array( + protected static $restartableSignals = [ SIGFPE, SIGILL, SIGSEGV, @@ -44,7 +45,7 @@ class ForkController { SIGPIPE, SIGXCPU, SIGXFSZ, - ); + ]; /** * Pass this flag to __construct() to cause the class to automatically restart @@ -53,7 +54,7 @@ class ForkController { const RESTART_ON_ERROR = 1; public function __construct( $numProcs, $flags = 0 ) { - if ( PHP_SAPI != 'cli' ) { + if ( !wfIsCLI() ) { throw new MWException( "ForkController cannot be used from the web." ); } $this->procsToStart = $numProcs; @@ -73,7 +74,7 @@ class ForkController { */ public function start() { // Trap SIGTERM - pcntl_signal( SIGTERM, array( $this, 'handleTermSignal' ), false ); + pcntl_signal( SIGTERM, [ $this, 'handleTermSignal' ], false ); do { // Start child processes @@ -150,16 +151,19 @@ class ForkController { protected function prepareEnvironment() { global $wgMemc; // Don't share DB, storage, or memcached connections - wfGetLBFactory()->destroyInstance(); + MediaWikiServices::resetChildProcessServices(); FileBackendGroup::destroySingleton(); LockManagerGroup::destroySingletons(); + JobQueueGroup::destroySingletons(); ObjectCache::clear(); + RedisConnectionPool::destroySingletons(); $wgMemc = null; } /** * Fork a number of worker processes. * + * @param int $numProcs * @return string */ protected function forkWorkers( $numProcs ) {