public function return_async($name, $pattern, $response_info, $response, $timeout, $trans_id, $pid)
{
if ($this->request_timeout_adjustment) {
if ($timeout == $this->request_timeout) {
$elapsed = max(0, (int) floor((microtime(true) - $this->request_timer) * 1000.0));
if ($elapsed > $timeout) {
$response_info = '';
$response = '';
$timeout = 0;
} else {
$timeout -= $elapsed;
}
}
}
$this->send(\Erlang\term_to_binary(array(new \Erlang\OtpErlangAtom('return_async'), $name, $pattern, new \Erlang\OtpErlangBinary($response_info), new \Erlang\OtpErlangBinary($response), $timeout, new \Erlang\OtpErlangBinary($trans_id), $pid)));
throw new ReturnAsyncException();
}