Aerys\Server::onWritable PHP Method

onWritable() private method

private onWritable ( string $watcherId, $socket, $client )
$watcherId string
    private function onWritable(string $watcherId, $socket, $client)
    {
        $bytesWritten = @\fwrite($socket, $client->writeBuffer);
        if ($bytesWritten === false) {
            if (!\is_resource($socket) || @\feof($socket)) {
                if ($client->isDead == Client::CLOSED_RD) {
                    $this->close($client);
                } else {
                    $client->isDead = Client::CLOSED_WR;
                    $client->writeWatcher = null;
                    \Amp\cancel($watcherId);
                }
            }
        } else {
            $client->bufferSize -= $bytesWritten;
            if ($bytesWritten === \strlen($client->writeBuffer)) {
                $client->writeBuffer = "";
                \Amp\disable($watcherId);
                if ($client->onWriteDrain) {
                    ($client->onWriteDrain)($client);
                }
            } else {
                $client->writeBuffer = \substr($client->writeBuffer, $bytesWritten);
                \Amp\enable($watcherId);
            }
            if ($client->bufferPromisor && $client->bufferSize <= $client->options->softStreamCap) {
                $promisor = $client->bufferPromisor;
                $client->bufferPromisor = null;
                $promisor->succeed();
            }
        }
    }