original_string: private function readPipes(bool $blocking, bool $close)
      {
          $result = $this->processPipes->readAndWrite($blocking, $close);
  
          $callback = $this->callback;
          foreach ($result as $type => $data) {
              if (3 !== $type) {
                  $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data);
              } elseif (!isset($this->fallbackStatus['signaled'])) {
                  $this->fallbackStatus['exitcode'] = (int) $data;
              }
          }
      }
code: private function readPipes(bool $blocking, bool $close)
      {
          $result = $this->processPipes->readAndWrite($blocking, $close);
  
          $callback = $this->callback;
          foreach ($result as $type => $data) {
              if (3 !== $type) {
                  $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data);
              } elseif (!isset($this->fallbackStatus['signaled'])) {
                  $this->fallbackStatus['exitcode'] = (int) $data;
              }
          }
      }
code_tokens: private function readPipes ( bool $ blocking , bool $ close ) { $ result = $ this -> processPipes -> readAndWrite ( $ blocking , $ close ) ; $ callback = $ this -> callback ; foreach ( $ result as $ type => $ data ) { if ( 3 !== $ type ) { $ callback ( self :: STDOUT === $ type ? self :: OUT : self :: ERR , $ data ) ; } elseif ( ! isset ( $ this -> fallbackStatus [ 'signaled' ] ) ) { $ this -> fallbackStatus [ 'exitcode' ] = ( int ) $ data ; } } }
docstring: Reads pipes, executes callback.
  
  @param bool $blocking Whether to use blocking calls or not
  @param bool $close    Whether to close file handles or not
docstring_tokens: Reads pipes executes callback .