private function finalizeResponse(Response $response, $fileInfo, $range = null) : \Generator
{
$handle = (yield $this->filesystem->open($fileInfo->path, "r"));
if (empty($range)) {
yield from $this->sendNonRange($handle, $response);
} elseif (empty($range->ranges[1])) {
list($startPos, $endPos) = $range->ranges[0];
yield from $this->sendSingleRange($handle, $response, $startPos, $endPos);
} else {
yield from $this->sendMultiRange($handle, $response, $fileInfo, $range);
}
$response->end();
}