async def METHOD_NAME(
    app: Application,
    host: str,
    port: int,
    started: asyncio.Event | None = None,
) -> None:
    enable_pretty_logging()
    AsyncIOMainLoop.current().install()
    server = HTTPServer(app)
    server.listen(port, host)
    if started:
        # at this point the server is accepting connection
        started.set()
    try:
        # block forever - tornado has already set up its own background tasks
        await asyncio.get_running_loop().create_future()
    finally:
        # stop accepting new connections
        server.stop()
        # wait for existing connections to complete
        await server.close_all_connections()