(self, slow=False)
| 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): |
no test coverage detected