Understanding integration of other eventloops
- Langage dominant
- Python
- Étoiles
- 734
- Forks
- 412
- Merge moyen
- 1 j 5 h
- PR mergées (30 j)
- 8
Description
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.
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.