Author: Armin Rigo <[email protected]>
Branch: py3.5
Changeset: r90621:4af601050e87
Date: 2017-03-10 14:01 +0100
http://bitbucket.org/pypy/pypy/changeset/4af601050e87/

Log:    Issue #2495: forgot two calls to checksignals() after we get an
        EINTR

diff --git a/pypy/module/_multiprocessing/interp_semaphore.py 
b/pypy/module/_multiprocessing/interp_semaphore.py
--- a/pypy/module/_multiprocessing/interp_semaphore.py
+++ b/pypy/module/_multiprocessing/interp_semaphore.py
@@ -372,6 +372,7 @@
                 except OSError as e:
                     if e.errno == errno.EINTR:
                         # again
+                        _check_signals(space)
                         continue
                     elif e.errno in (errno.EAGAIN, errno.ETIMEDOUT):
                         return False
diff --git a/pypy/module/time/interp_time.py b/pypy/module/time/interp_time.py
--- a/pypy/module/time/interp_time.py
+++ b/pypy/module/time/interp_time.py
@@ -469,6 +469,7 @@
                 break    # normal path
             if rposix.get_saved_errno() != EINTR:
                 raise exception_from_saved_errno(space, space.w_OSError)
+            space.getexecutioncontext().checksignals()
             secs = end_time - timeutils.monotonic(space)   # retry
             if secs <= 0.0:
                 break
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to