MCPcopy Index your code
hub / github.com/python/cpython / _readline

Method _readline

Lib/pdb.py:3151–3180  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

3149 self.write_failed = True
3150
3151 def _readline(self):
3152 if self.sigint_received:
3153 # There's a pending unhandled SIGINT. Handle it now.
3154 self.sigint_received = False
3155 raise KeyboardInterrupt
3156
3157 # Wait for either a SIGINT or a line or EOF from the PDB server.
3158 selector = selectors.DefaultSelector()
3159 selector.register(self.signal_read, selectors.EVENT_READ)
3160 selector.register(self.server_socket, selectors.EVENT_READ)
3161
3162 while b"\n" not in self.read_buf:
3163 for key, _ in selector.select():
3164 if key.fileobj == self.signal_read:
3165 self.signal_read.recv(1024)
3166 if self.sigint_received:
3167 # If not, we're reading wakeup events for sigints that
3168 # we've previously handled, and can ignore them.
3169 self.sigint_received = False
3170 raise KeyboardInterrupt
3171 elif key.fileobj == self.server_socket:
3172 data = self.server_socket.recv(16 * 1024)
3173 self.read_buf += data
3174 if not data and b"\n" not in self.read_buf:
3175 # EOF without a full final line. Drop the partial line.
3176 self.read_buf = b""
3177 return b""
3178
3179 ret, sep, self.read_buf = self.read_buf.partition(b"\n")
3180 return ret + sep
3181
3182 def read_input(self, prompt, multiline_block):
3183 self.multiline_block = multiline_block

Callers 2

cmdloopMethod · 0.95
completeMethod · 0.95

Calls 4

registerMethod · 0.45
selectMethod · 0.45
recvMethod · 0.45
partitionMethod · 0.45

Tested by

no test coverage detected