Fix asyncio event loop init in qml_bridge.py
Depending on Python version the file may be imported in a thread and asyncio only implicitly creates an event loop in the main thread of the process. Backend does things which need asyncio so we must ensure an event loop exists before it is imported. Fixes #15
This commit is contained in:
parent
4bae3cf90e
commit
9a6c4b5b30
|
@ -40,12 +40,16 @@ class QMLBridge:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
|
try:
|
||||||
|
self._loop = asyncio.get_event_loop()
|
||||||
|
except RuntimeError:
|
||||||
|
self._loop = asyncio.new_event_loop()
|
||||||
|
asyncio.set_event_loop(self._loop)
|
||||||
|
self._loop.set_exception_handler(self._loop_exception_handler)
|
||||||
|
|
||||||
from .backend import Backend
|
from .backend import Backend
|
||||||
self.backend: Backend = Backend()
|
self.backend: Backend = Backend()
|
||||||
|
|
||||||
self._loop = asyncio.get_event_loop()
|
|
||||||
self._loop.set_exception_handler(self._loop_exception_handler)
|
|
||||||
|
|
||||||
Thread(target=self._start_asyncio_loop).start()
|
Thread(target=self._start_asyncio_loop).start()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user