4 ms·
This is the same as the solution from the article, except that: - Chris forgot to declare the variable as global; - Chris used asyncio.create_task() instead o
by jwilk 6y ago
This is the same as the solution from the article, except that:
- Chris forgot to declare the variable as global;
- Chris used asyncio.create_task() instead of asyncio.ensure_future().
- mgraczyk 6y agoThanks for pointing that out, for some reason I had thought the last implementation also used a lock.
- andreareina 6y agoMaybe it's me not grokking async, but the code seems right to me. `once` is a decorator, so `future` is "instantiated" once per decorated function, which is then accessed as nonlocal in the wrapper. So in the last code sample, every call to `one_time_setup()` is accessing the same `future`.
- benji-york 6y agoSince D is not being rebound, the global declaration is unneeded.
- jwilk 6y ago(Chris has added the global declaration since then.)