private $cgroup = false;
/**
- * bitfield with restrictions
+ * Bitfield with restrictions
*
* @var int
*/
protected $restrictions = 0;
/**
- * Constructor. Don't call directly, instead use Shell::command()
+ * Don't call directly, instead use Shell::command()
*
* @throws ShellDisabledError
*/
}
/**
- * Destructor. Makes sure programmer didn't forget to execute the command after all
+ * Makes sure the programmer didn't forget to execute the command after all
*/
public function __destruct() {
if ( !$this->everExecuted ) {
// clear get_last_error without actually raising an error
// from https://www.php.net/manual/en/function.error-get-last.php#113518
- // TODO replace with clear_last_error when requirements are bumped to PHP7
+ // TODO replace with error_clear_last after dropping HHVM
+ // @phan-suppress-next-line PhanTypeMismatchArgumentInternal
set_error_handler( function () {
}, 0 );
AtEase::suppressWarnings();
// stream_select parameter names are from the POV of us being able to do the operation;
// proc_open desriptor types are from the POV of the process doing it.
// So $writePipes is passed as the $read parameter and $readPipes as $write.
- // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- $numReadyPipes = @stream_select( $writePipes, $readPipes, $emptyArray, $timeout );
+ AtEase::suppressWarnings();
+ $numReadyPipes = stream_select( $writePipes, $readPipes, $emptyArray, $timeout );
+ AtEase::restoreWarnings();
if ( $numReadyPipes === false ) {
$error = error_get_last();
if ( strncmp( $error['message'], $eintrMessage, strlen( $eintrMessage ) ) == 0 ) {