Skip to content

Commit 8edbde4

Browse files
committed
pythongh-106751: Optimize SelectSelector.select() for many iteration case
1 parent 7513e2e commit 8edbde4

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

‎Lib/selectors.py‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -316,15 +316,13 @@ def select(self, timeout=None):
316316
return ready
317317
r = set(r)
318318
w = set(w)
319-
for fd in r | w:
320-
events = 0
321-
if fd in r:
322-
events |= EVENT_READ
323-
if fd in w:
324-
events |= EVENT_WRITE
325-
326-
key = self._fd_to_key.get(fd)
319+
rw = r | w
320+
fd_to_key_get = self._fd_to_key.get
321+
for fd in rw:
322+
key = fd_to_key_get(fd)
327323
if key:
324+
events = ((fd in r and EVENT_READ)
325+
| (fd in w and EVENT_WRITE))
328326
ready.append((key, events & key.events))
329327
return ready
330328

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Optimize :meth:`SelectSelector.select` for many iteration case. Patch By
2+
Dong-hee Na.

0 commit comments

Comments
 (0)