• Jim Mussared's avatar
    extmod/asyncio/stream.py: Fix cancellation handling of start_server. · 977dc9a3
    Jim Mussared authored
    The following code:
    
      server = await asyncio.start_server(...)
      async with server:
        ... code that raises ...
    
    would lose the original exception because the server's task would not have
    had a chance to be scheduled yet, and so awaiting the task in wait_closed
    would raise the cancellation instead of the original exception.
    
    Additionally, ensures that explicitly cancelling the parent task delivers
    the cancellation correctly (previously was masked by the server loop), now
    this only happens if the server was closed, not when the task was
    cancelled.
    Signed-off-by: default avatarJim Mussared <jim.mussared@gmail.com>
    977dc9a3
asyncio_start_server.py 1.8 KB