summaryrefslogtreecommitdiff
path: root/redis/_compat.py
diff options
context:
space:
mode:
authorChris Simpson <cjsimpson@gmail.com>2016-06-12 18:35:47 -0400
committerChris Simpson <cjsimpson@gmail.com>2016-06-12 18:35:47 -0400
commitcb15dfcfa126f5e623b98c6bdf017941bf084cef (patch)
treec0c3800cc508e9b8f2d068581576c000e08f292c /redis/_compat.py
parent360c2124554b1056299c54850771d0cd28241450 (diff)
parent3bdf81ab41464d8e918080234912fc8fd86629af (diff)
downloadredis-py-cb15dfcfa126f5e623b98c6bdf017941bf084cef.tar.gz
Merge branch 'master' of https://github.com/andymccurdy/redis-py
Diffstat (limited to 'redis/_compat.py')
-rw-r--r--redis/_compat.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/redis/_compat.py b/redis/_compat.py
index c4a72d9..4713d01 100644
--- a/redis/_compat.py
+++ b/redis/_compat.py
@@ -9,6 +9,15 @@ if sys.version_info[0] < 3 or (sys.version_info[0] == 3 and
import time
import errno
+ from select import select as _select
+
+ def select(rlist, wlist, xlist, timeout):
+ while True:
+ try:
+ return _select(rlist, wlist, xlist, timeout)
+ except InterruptedError:
+ continue
+
# Wrapper for handling interruptable system calls.
def _retryable_call(s, func, *args, **kwargs):
# Some modules (SSL) use the _fileobject wrapper directly and
@@ -54,6 +63,8 @@ if sys.version_info[0] < 3 or (sys.version_info[0] == 3 and
return _retryable_call(sock, sock.recv_into, *args, **kwargs)
else: # Python 3.5 and above automatically retry EINTR
+ from select import select
+
def recv(sock, *args, **kwargs):
return sock.recv(*args, **kwargs)