(self, immediate)
| 574 | return self._shutdown_join(False) |
| 575 | |
| 576 | def _shutdown_put_join(self, immediate): |
| 577 | q = self.type2test(2) |
| 578 | results = [] |
| 579 | go = threading.Event() |
| 580 | q.put("Y") |
| 581 | # queue not fulled |
| 582 | |
| 583 | thrds = ( |
| 584 | (self._put_shutdown, (q, "E", go, results)), |
| 585 | (self._join, (q, results)), |
| 586 | ) |
| 587 | threads = [] |
| 588 | for func, params in thrds: |
| 589 | threads.append(threading.Thread(target=func, args=params)) |
| 590 | threads[-1].start() |
| 591 | self.assertEqual(q.unfinished_tasks, 1) |
| 592 | |
| 593 | q.shutdown(immediate) |
| 594 | go.set() |
| 595 | |
| 596 | if immediate: |
| 597 | with self.assertRaises(self.queue.ShutDown): |
| 598 | q.get_nowait() |
| 599 | else: |
| 600 | result = q.get() |
| 601 | self.assertEqual(result, "Y") |
| 602 | q.task_done() |
| 603 | |
| 604 | for t in threads: |
| 605 | t.join() |
| 606 | |
| 607 | self.assertEqual(results, [True]*len(thrds)) |
| 608 | |
| 609 | def test_shutdown_immediate_put_join(self): |
| 610 | return self._shutdown_put_join(True) |
no test coverage detected