![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/rector/rector/vendor/fidry/cpu-core-counter/src/ |
<?php /* * This file is part of the Fidry CPUCounter Config package. * * (c) Théo FIDRY <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ declare (strict_types=1); namespace RectorPrefix202308\Fidry\CpuCoreCounter; use RectorPrefix202308\Fidry\CpuCoreCounter\Finder\CpuCoreFinder; use RectorPrefix202308\Fidry\CpuCoreCounter\Finder\FinderRegistry; final class CpuCoreCounter { /** * @var list<CpuCoreFinder> */ private $finders; /** * @var positive-int|null */ private $count; /** * @param list<CpuCoreFinder>|null $finders */ public function __construct(?array $finders = null) { $this->finders = $finders ?? FinderRegistry::getDefaultLogicalFinders(); } /** * @throws NumberOfCpuCoreNotFound * * @return positive-int */ public function getCount() : int { // Memoize result if (null === $this->count) { $this->count = $this->findCount(); } return $this->count; } /** * @throws NumberOfCpuCoreNotFound * * @return positive-int */ private function findCount() : int { foreach ($this->finders as $finder) { $cores = $finder->find(); if (null !== $cores) { return $cores; } } throw NumberOfCpuCoreNotFound::create(); } /** * @throws NumberOfCpuCoreNotFound * * @return array{CpuCoreFinder, positive-int} */ public function getFinderAndCores() : array { foreach ($this->finders as $finder) { $cores = $finder->find(); if (null !== $cores) { return [$finder, $cores]; } } throw NumberOfCpuCoreNotFound::create(); } }