(config: Config, sockets: list[socket] | None = None)
| 14 | |
| 15 | @asynccontextmanager |
| 16 | async def run_server(config: Config, sockets: list[socket] | None = None) -> AsyncIterator[Server]: |
| 17 | server = Server(config=config) |
| 18 | task = asyncio.create_task(server.serve(sockets=sockets)) |
| 19 | while not server.started: |
| 20 | await asyncio.sleep(0.05) |
| 21 | try: |
| 22 | yield server |
| 23 | finally: |
| 24 | await server.shutdown() |
| 25 | task.cancel() |
| 26 | |
| 27 | |
| 28 | @contextmanager |