##// END OF EJS Templates
ZMQ heartbeat: catch EINTR exceptions and continue....
ZMQ heartbeat: catch EINTR exceptions and continue. The zmq heartbeat channel exits when it encounters an "Interrupted system call", thereby causing the qtconsole to report that it is not responding, despite the console working perfectly fine. Observed in a large Qt application embedding the ipython qtconsole. Fixes #2310

File last commit:

r11009:e16cf2f8
r12301:b4ca80e2
Show More
inprocess.py
40 lines | 1.3 KiB | text/x-python | PythonLexer
""" Defines an in-process KernelManager with signals and slots.
"""
# Local imports.
from IPython.kernel.inprocess import (
InProcessShellChannel, InProcessIOPubChannel, InProcessStdInChannel,
InProcessHBChannel, InProcessKernelClient, InProcessKernelManager,
)
from IPython.utils.traitlets import Type
from .kernel_mixins import (
QtShellChannelMixin, QtIOPubChannelMixin,
QtStdInChannelMixin, QtHBChannelMixin, QtKernelClientMixin,
QtKernelManagerMixin,
)
class QtInProcessShellChannel(QtShellChannelMixin, InProcessShellChannel):
pass
class QtInProcessIOPubChannel(QtIOPubChannelMixin, InProcessIOPubChannel):
pass
class QtInProcessStdInChannel(QtStdInChannelMixin, InProcessStdInChannel):
pass
class QtInProcessHBChannel(QtHBChannelMixin, InProcessHBChannel):
pass
class QtInProcessKernelClient(QtKernelClientMixin, InProcessKernelClient):
""" An in-process KernelManager with signals and slots.
"""
iopub_channel_class = Type(QtInProcessIOPubChannel)
shell_channel_class = Type(QtInProcessShellChannel)
stdin_channel_class = Type(QtInProcessStdInChannel)
hb_channel_class = Type(QtInProcessHBChannel)
class QtInProcessKernelManager(QtKernelManagerMixin, InProcessKernelManager):
client_class = __module__ + '.QtInProcessKernelClient'