mirror of
https://github.com/AdaCore/cpython.git
synced 2026-02-12 12:57:15 -08:00
Issue #18934: Use poll/select-based selectors for multiprocessing.Connection,
to avoid one extra FD per Connection.
This commit is contained in:
@@ -878,13 +878,21 @@ else:
|
||||
|
||||
import selectors
|
||||
|
||||
# poll/select have the advantage of not requiring any extra file
|
||||
# descriptor, contrarily to epoll/kqueue (also, they require a single
|
||||
# syscall).
|
||||
if hasattr(selectors, 'PollSelector'):
|
||||
_WaitSelector = selectors.PollSelector
|
||||
else:
|
||||
_WaitSelector = selectors.SelectSelector
|
||||
|
||||
def wait(object_list, timeout=None):
|
||||
'''
|
||||
Wait till an object in object_list is ready/readable.
|
||||
|
||||
Returns list of those objects in object_list which are ready/readable.
|
||||
'''
|
||||
with selectors.DefaultSelector() as selector:
|
||||
with _WaitSelector() as selector:
|
||||
for obj in object_list:
|
||||
selector.register(obj, selectors.EVENT_READ)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user