From 7236f20b861f568a25284c925717c3861de277ef Mon Sep 17 00:00:00 2001 From: rmorshea Date: Sun, 13 Sep 2020 01:23:31 -0700 Subject: [PATCH] fixes: #222 --- idom/core/layout.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/idom/core/layout.py b/idom/core/layout.py index d8a0e5cef..47b7bbc55 100644 --- a/idom/core/layout.py +++ b/idom/core/layout.py @@ -268,9 +268,10 @@ def __repr__(self) -> str: class _ElementQueue: - __slots__ = "_queue", "_pending" + __slots__ = "_loop", "_queue", "_pending" def __init__(self) -> None: + self._loop = asyncio.get_event_loop() self._queue: "asyncio.Queue[AbstractElement]" = asyncio.Queue() self._pending: Set[int] = set() @@ -278,7 +279,7 @@ def put(self, element: AbstractElement) -> None: element_id = id(element) if element_id not in self._pending: self._pending.add(element_id) - self._queue.put_nowait(element) + self._loop.call_soon_threadsafe(self._queue.put_nowait, element) return None async def get(self) -> AbstractElement: