MCPcopy Index your code
hub / github.com/docker/docker-py / read

Function read

docker/utils/socket.py:26–59  ·  view source on GitHub ↗

Reads at most n bytes from socket

(socket, n=4096)

Source from the content-addressed store, hash-verified

24
25
26def read(socket, n=4096):
27 """
28 Reads at most n bytes from socket
29 """
30
31 recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK)
32
33 if not isinstance(socket, NpipeSocket):
34 if not hasattr(select, "poll"):
35 # Limited to 1024
36 select.select([socket], [], [])
37 else:
38 poll = select.poll()
39 poll.register(socket, select.POLLIN | select.POLLPRI)
40 poll.poll()
41
42 try:
43 if hasattr(socket, 'recv'):
44 return socket.recv(n)
45 if isinstance(socket, pysocket.SocketIO):
46 return socket.read(n)
47 return os.read(socket.fileno(), n)
48 except OSError as e:
49 if e.errno not in recoverable_errors:
50 raise
51 except Exception as e:
52 is_pipe_ended = (isinstance(socket, NpipeSocket) and
53 len(e.args) > 0 and
54 e.args[0] == NPIPE_ENDED)
55 if is_pipe_ended:
56 # npipes don't support duplex sockets, so we interpret
57 # a PIPE_ENDED error as a close operation (0-length read).
58 return ''
59 raise
60
61
62def read_exactly(socket, n):

Callers 3

read_exactlyFunction · 0.85
frames_iter_no_ttyFunction · 0.85
frames_iter_ttyFunction · 0.85

Calls 2

filenoMethod · 0.80
recvMethod · 0.45

Tested by

no test coverage detected