diff --git a/docker/utils/socket.py b/docker/utils/socket.py index 47cb44f62..3c31a98c5 100644 --- a/docker/utils/socket.py +++ b/docker/utils/socket.py @@ -3,6 +3,7 @@ import select import socket as pysocket import struct +import sys try: from ..transport import NpipeSocket @@ -31,7 +32,13 @@ def read(socket, n=4096): recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK) if not isinstance(socket, NpipeSocket): - select.select([socket], [], []) + if sys.platform == 'win32': + # Limited to 1024 + select.select([socket], [], []) + else: + poll = select.poll() + poll.register(socket) + poll.poll() try: if hasattr(socket, 'recv'):