opt
/
cpanel
/
ea-wappspector
/
vendor
/
rector
/
rector
/
vendor
/
symplify
/
easy-parallel
/
src
/
ValueObject
➕ New
📤 Upload
✎ Editing:
ProcessPool.php
← Back
<?php declare (strict_types=1); namespace RectorPrefix202411\Symplify\EasyParallel\ValueObject; use RectorPrefix202411\React\Socket\TcpServer; use RectorPrefix202411\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; /** * Used from https://github.com/phpstan/phpstan-src/blob/master/src/Parallel/ProcessPool.php * * @api */ final class ProcessPool { /** * @readonly * @var \React\Socket\TcpServer */ private $tcpServer; /** * @var array<string, ParallelProcess> */ private $processes = []; public function __construct(TcpServer $tcpServer) { $this->tcpServer = $tcpServer; } public function getProcess(string $identifier) : ParallelProcess { if (!\array_key_exists($identifier, $this->processes)) { throw new ParallelShouldNotHappenException(\sprintf('Process "%s" not found.', $identifier)); } return $this->processes[$identifier]; } public function attachProcess(string $identifier, ParallelProcess $parallelProcess) : void { $this->processes[$identifier] = $parallelProcess; } public function tryQuitProcess(string $identifier) : void { if (!\array_key_exists($identifier, $this->processes)) { return; } $this->quitProcess($identifier); } public function quitProcess(string $identifier) : void { $parallelProcess = $this->getProcess($identifier); $parallelProcess->quit(); unset($this->processes[$identifier]); if ($this->processes !== []) { return; } $this->tcpServer->close(); } public function quitAll() : void { foreach (\array_keys($this->processes) as $identifier) { $this->quitProcess($identifier); } } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel