%PDF- %PDF-
Direktori : /var/www/tif-dev/wp-content/plugins/worker/src/Symfony/Process/Pipes/ |
Current File : //var/www/tif-dev/wp-content/plugins/worker/src/Symfony/Process/Pipes/AbstractPipes.php |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * @author Romain Neutron <imprec@gmail.com> * * @internal */ abstract class Symfony_Process_Pipes_AbstractPipes implements Symfony_Process_Pipes_PipesInterface { /** @var array */ public $pipes = array(); /** @var string */ protected $inputBuffer = ''; /** @var resource|null */ protected $input; /** @var bool */ private $blocked = true; /** * {@inheritdoc} */ public function close() { foreach ($this->pipes as $pipe) { fclose($pipe); } $this->pipes = array(); } /** * Returns true if a system call has been interrupted. * * @return bool */ protected function hasSystemCallBeenInterrupted() { $lastError = error_get_last(); // stream_select returns false when the `select` system call is interrupted by an incoming signal return isset($lastError['message']) && false !== stripos($lastError['message'], 'interrupted system call'); } /** * Unblocks streams */ protected function unblock() { if (!$this->blocked) { return; } foreach ($this->pipes as $pipe) { stream_set_blocking($pipe, 0); } if (null !== $this->input) { stream_set_blocking($this->input, 0); } $this->blocked = false; } }