Understanding integration of other eventloops
- 主要語言
- Python
- 星號
- 734
- 分支
- 412
- 平均合併
- 1 天 5 小時
- 30 天內合併 PR
- 8
描述
Hey I have some questions,
I integrated the qt eventloop using %gui qt and I noticed a small delay in my qt application every time I pass code to the kernel. I investigated the issue and noticed that although the qt eventloop passes to the kernel eventloop, it quits the qt app and somehow calls `loop_qt5` again to reintegrates the qt eventloop. This takes roughly a second which is bummer.
So I have rewritten the integration using `kernel.do_one_iteration`. My current fork has no delay and seems to work, but I want to understand why (this is not the standard way)?
Does my code may break some functionalities as I replaced `yield gen.sleep(self.stop_on_error_timeout)` with `time.sleep(self.stop_on_error_timeout)`? But otherwise the kernel can not recover from an exception, as `self._aborting = False` will never be called (because the kernel eventloop does not run).
My Commit:
https://github.com/ugogon/ipykernel/commit/4f29274bf368ffa5a5124aa5bc6995810904344c
Maybe you can give me some insights of the ipython eventloop structure.
貢獻指南
評估
這個 Issue 還沒有評估資料。