public function select()
    {
        $read = [$this->stream];
        $write = null;
        $except = null;

        // if the process gets a system signal before the timeout is ran
        // a warning is thrown therefore we need to suppress the warning
        $this->selected = @stream_select(
            $read,
            $write,
            $except,
            0,
            $this->timeout
        );

        return $this;
    }