浏览代码

add AsyncBasedSession.asyncio_coroutine to run asyncio coroutine in other thread

wangweimin 5 年之前
父节点
当前提交
5317f69c33
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      pywebio/session/asyncbased.py

+ 5 - 0
pywebio/session/asyncbased.py

@@ -194,6 +194,11 @@ class AsyncBasedSession(AbstractSession):
     def run_async(self, coro_obj):
         self.inactive_coro_instances.append(coro_obj)
 
+    async def asyncio_coroutine(self, coro):
+        """若会话线程和运行事件的线程不是同一个线程,需要用 asyncio_coroutine 来运行asyncio中的协程"""
+        res = await WebIOFuture(coro=coro)
+        return res
+
 
 class Task:
     @contextmanager