Wait until there are no more inprogress transfers This will not stop when failures are encountered and not propagate any of these errors from failed transfers, but it can be interrupted with a KeyboardInterrupt.
(self)
| 724 | transfer_coordinator.cancel(msg, exc_type) |
| 725 | |
| 726 | def wait(self): |
| 727 | """Wait until there are no more inprogress transfers |
| 728 | |
| 729 | This will not stop when failures are encountered and not propagate any |
| 730 | of these errors from failed transfers, but it can be interrupted with |
| 731 | a KeyboardInterrupt. |
| 732 | """ |
| 733 | try: |
| 734 | transfer_coordinator = None |
| 735 | for transfer_coordinator in self.tracked_transfer_coordinators: |
| 736 | transfer_coordinator.result() |
| 737 | except KeyboardInterrupt: |
| 738 | logger.debug('Received KeyboardInterrupt in wait()') |
| 739 | # If Keyboard interrupt is raised while waiting for |
| 740 | # the result, then exit out of the wait and raise the |
| 741 | # exception |
| 742 | if transfer_coordinator: |
| 743 | logger.debug( |
| 744 | 'On KeyboardInterrupt was waiting for %s', |
| 745 | transfer_coordinator, |
| 746 | ) |
| 747 | raise |
| 748 | except Exception: |
| 749 | # A general exception could have been thrown because |
| 750 | # of result(). We just want to ignore this and continue |
| 751 | # because we at least know that the transfer coordinator |
| 752 | # has completed. |
| 753 | pass |
no test coverage detected