private function writeRequest(RequestCycle $cycle)
{
$rawHeaders = $this->generateRawRequestHeaders($cycle->request);
$writePromise = (new BufferWriter())->write($cycle->socket, $rawHeaders);
$writePromise->watch(function ($update) use($cycle) {
$cycle->futureResponse->update([Notify::SOCK_DATA_OUT, $update]);
if ($cycle->options[self::OP_VERBOSITY] & self::VERBOSE_SEND) {
echo $update;
}
});
$writePromise->when(function ($error, $response) use($cycle) {
if ($error) {
$this->fail($cycle, $error);
} else {
$this->afterHeaderWrite($cycle);
}
});
}