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

Method test_wait

Lib/test/_test_multiprocessing.py:5574–5602  ·  view source on GitHub ↗
(self, slow=False)

Source from the content-addressed store, hash-verified

5572
5573 @warnings_helper.ignore_fork_in_thread_deprecation_warnings()
5574 def test_wait(self, slow=False):
5575 from multiprocessing.connection import wait
5576 readers = []
5577 procs = []
5578 messages = []
5579
5580 for i in range(4):
5581 r, w = multiprocessing.Pipe(duplex=False)
5582 p = multiprocessing.Process(target=self._child_test_wait, args=(w, slow))
5583 p.daemon = True
5584 p.start()
5585 w.close()
5586 readers.append(r)
5587 procs.append(p)
5588 self.addCleanup(p.join)
5589
5590 while readers:
5591 for r in wait(readers):
5592 try:
5593 msg = r.recv()
5594 except EOFError:
5595 readers.remove(r)
5596 r.close()
5597 else:
5598 messages.append(msg)
5599
5600 messages.sort()
5601 expected = sorted((i, p.pid) for i in range(10) for p in procs)
5602 self.assertEqual(messages, expected)
5603
5604 @classmethod
5605 def _child_test_wait_socket(cls, address, slow):

Callers 1

test_wait_slowMethod · 0.95

Calls 11

waitFunction · 0.90
PipeMethod · 0.80
addCleanupMethod · 0.80
ProcessMethod · 0.45
startMethod · 0.45
closeMethod · 0.45
appendMethod · 0.45
recvMethod · 0.45
removeMethod · 0.45
sortMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected