diff options
| author | Miguel Grinberg <miguel.grinberg@gmail.com> | 2021-06-07 11:40:09 +0100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2021-06-08 15:10:50 +1000 |
| commit | de2e081260395f47d21bf39a97f3461df3d8b94f (patch) | |
| tree | 47f0a4dc41bb1d506b61b02276ffabb7079c9be4 /extmod/uasyncio/stream.py | |
| parent | 525a920ca5f284b7eb5875550ae0febcd1714a06 (diff) | |
extmod/uasyncio: Fix start_server and wait_closed race condition.
This fix prevents server.wait_closed() from raising an AttributeError when
trying to access server.task. This can happen if it is called immediately
after start_server().
Diffstat (limited to 'extmod/uasyncio/stream.py')
| -rw-r--r-- | extmod/uasyncio/stream.py | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/extmod/uasyncio/stream.py b/extmod/uasyncio/stream.py index 395ff1f6a..2a259e618 100644 --- a/extmod/uasyncio/stream.py +++ b/extmod/uasyncio/stream.py @@ -112,7 +112,6 @@ class Server: s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(ai[-1]) s.listen(backlog) - self.task = core.cur_task # Accept incoming connections while True: try: @@ -135,7 +134,7 @@ class Server: # TODO could use an accept-callback on socket read activity instead of creating a task async def start_server(cb, host, port, backlog=5): s = Server() - core.create_task(s._serve(cb, host, port, backlog)) + s.task = core.create_task(s._serve(cb, host, port, backlog)) return s |
