MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_threaded_poll

Method test_threaded_poll

Lib/test/test_poll.py:186–210  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

184 @unittest.skip("TODO: RUSTPYTHON fd reallocation")
185 @threading_helper.reap_threads
186 def test_threaded_poll(self):
187 r, w = os.pipe()
188 self.addCleanup(os.close, r)
189 self.addCleanup(os.close, w)
190 rfds = []
191 for i in range(10):
192 fd = os.dup(r)
193 self.addCleanup(os.close, fd)
194 rfds.append(fd)
195 pollster = select.poll()
196 for fd in rfds:
197 pollster.register(fd, select.POLLIN)
198 t = threading.Thread(target=pollster.poll)
199 t.start()
200 try:
201 time.sleep(0.5)
202 # trigger ufds array reallocation
203 for fd in rfds:
204 pollster.unregister(fd)
205 pollster.register(w, select.POLLOUT)
206 self.assertRaises(RuntimeError, pollster.poll)
207 finally:
208 # and make the call to poll() from the thread return
209 os.write(w, b'spam')
210 t.join()
211
212 @unittest.skipUnless(threading, 'Threading required for this test.')
213 @threading_helper.reap_threads

Callers

nothing calls this directly

Calls 12

startMethod · 0.95
joinMethod · 0.95
addCleanupMethod · 0.80
pipeMethod · 0.45
dupMethod · 0.45
appendMethod · 0.45
pollMethod · 0.45
registerMethod · 0.45
sleepMethod · 0.45
unregisterMethod · 0.45
assertRaisesMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected