ignore EINTR in channel loops #501

Closed
wants to merge 1 commit into
from

Conversation

Projects
None yet
1 participant
Owner

minrk commented Jun 3, 2011

closes #499

calls to ioloop.start() are wrapped in:

while True:
    try:
        self.ioloop.start()
    except zmq.ZMQError as e:
        if e.errno == errno.EINTR:
            continue
        else:
            raise
    else:
        break

preventing Qt's spurious interrupts from crashing channels.

minrk closed this in 3e19444 Jun 4, 2011

@pombredanne pombredanne added a commit to pombredanne/ipython that referenced this pull request Jun 17, 2011

@minrk @pombredanne minrk + pombredanne ignore EINTR in channel loops
closes gh-499
closes gh-501
e342449

@minrk minrk added a commit that referenced this pull request Aug 27, 2013

@minrk minrk Backport PR #4118: ZMQ heartbeat channel: 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 in KDE desktop.
Fixes #2310
Inspired by #501
bf63ce7

@mattvonrocketstein mattvonrocketstein pushed a commit to mattvonrocketstein/ipython that referenced this pull request Nov 3, 2014

@minrk minrk ignore EINTR in channel loops
closes gh-499
closes gh-501
50c0f1b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment