8000 uasyncio: Code throws exception under CPython · Issue #6174 · micropython/micropython · GitHub
[go: up one dir, main page]

Skip to content
uasyncio: Code throws exception under CPython #6174
Open
@peterhinch

Description

@peterhinch

MicroPython allows a task to be created before issuing .run() but CPython throws an exception.

try:
    import uasyncio as asyncio
except ImportError:
    import asyncio

async def foo():
    await asyncio.sleep(3)

async def bar():
    await foo_task

foo_task = asyncio.create_task(foo())  # Naughty code here...
asyncio.run(bar())

Outcome under CPython 3.8.0:

adminpete@debian8:/mnt/qnap2/temp$ python3 -m rats_x
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.8/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/mnt/qnap2/temp/rats_x.py", line 12, in <module>
    foo_task = asyncio.create_task(foo())
  File "/usr/local/lib/python3.8/asyncio/tasks.py", line 381, in create_task
    loop = events.get_running_loop()
RuntimeError: no running event loop
sys:1: RuntimeWarning: coroutine 'foo' was never awaited

My view is that this doesn't matter, but I thought it worth reporting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    extmodRelates to extmod/ directory in source

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0