MCPcopy
hub / github.com/celery/celery / _select_imp

Function _select_imp

celery/concurrency/asynpool.py:111–141  ·  view source on GitHub ↗
(readers=None, writers=None, err=None, timeout=0,
                    poll=select.poll, POLLIN=select.POLLIN,
                    POLLOUT=select.POLLOUT, POLLERR=select.POLLERR)

Source from the content-addressed store, hash-verified

109
110if hasattr(select, 'poll'):
111 def _select_imp(readers=None, writers=None, err=None, timeout=0,
112 poll=select.poll, POLLIN=select.POLLIN,
113 POLLOUT=select.POLLOUT, POLLERR=select.POLLERR):
114 poller = poll()
115 register = poller.register
116 fd_to_mask = {}
117
118 if readers:
119 for fd in map(_ensure_integral_fd, readers):
120 fd_to_mask[fd] = fd_to_mask.get(fd, 0) | POLLIN
121 if writers:
122 for fd in map(_ensure_integral_fd, writers):
123 fd_to_mask[fd] = fd_to_mask.get(fd, 0) | POLLOUT
124 if err:
125 for fd in map(_ensure_integral_fd, err):
126 fd_to_mask[fd] = fd_to_mask.get(fd, 0) | POLLERR
127
128 for fd, event_mask in fd_to_mask.items():
129 register(fd, event_mask)
130
131 R, W = set(), set()
132 timeout = 0 if timeout and timeout < 0 else round(timeout * 1e3)
133 events = poller.poll(timeout)
134 for fd, event in events:
135 if event & POLLIN:
136 R.add(fd)
137 if event & POLLOUT:
138 W.add(fd)
139 if event & POLLERR:
140 R.add(fd)
141 return R, W, 0
142else:
143 def _select_imp(readers=None, writers=None, err=None, timeout=0):
144 r, w, e = select.select(readers, writers, err, timeout)

Callers

nothing calls this directly

Calls 4

selectMethod · 0.80
getMethod · 0.45
itemsMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected