shutdown() tries to access non-existent attribute "cancel" on uasyncio module
https://github.com/belyalov/tinyweb/blob/33d73c90f005cfd3423affe358cad0f13c37728f/tinyweb/server.py#L689
Board: esp8266, generic nodeMCU dev board Micropython: 1.17 (esp8266 port), with frozen modules tinyweb and logging
I'm trying to perform the "shutdown" procedure as per instructions in the reference material for the webserver class, i.e.
async def all_shutdown():
await asyncio.sleep_ms(100)
try:
web = tinyweb.webserver()
web.run()
except KeyboardInterrupt as e:
print(' CTRL+C pressed - terminating...')
web.shutdown()
uasyncio.get_event_loop().run_until_complete(all_shutdown())
When I run my server then hit Ctrl-C, I get:
Traceback (most recent call last):
File "main.py", line 30, in run
File "tinyweb/server.py", line 689, in shutdown
File "uasyncio/__init__.py", line 1, in __getattr__
AttributeError: cancel
Correct, according to the latest documentation uasyncio has no cancel() function at the module level. I think what is intended is to call the cancel() method of the Task class; however, I don't see that the code is saving references to the task instances returned calls to the loop .create_task() method.
Is there some way to shut the server down then?
I'm trying to shut it down after receiving a request and currently I can't find any way to do it.