s4cmd.py
def join(self):
    '''Override original join() with a timeout and handle keyboard interrupt.'''
    self.all_tasks_done.acquire()
    try:
      while self.unfinished_tasks:
        self.all_tasks_done.wait(1000)

        # Child thread has exceptions, fail main thread too.
        if self.exc_info:
          fail('[Thread Failure] ', exc_info=self.exc_info)
    except KeyboardInterrupt:
      raise Failure('Interrupted by user')
    finally:
      self.all_tasks_done.release()
def join(self):
    '''Override original join() with a timeout and handle keyboard interrupt.'''
    self.all_tasks_done.acquire()
    try:
      while self.unfinished_tasks:
        self.all_tasks_done.wait(1000)

        # Child thread has exceptions, fail main thread too.
        if self.exc_info:
          fail('[Thread Failure] ', exc_info=self.exc_info)
    except KeyboardInterrupt:
      raise Failure('Interrupted by user')
    finally:
      self.all_tasks_done.release()
def join ( self ) : self . all_tasks_done . acquire ( ) try : while self . unfinished_tasks : self . all_tasks_done . wait ( 1000 ) # Child thread has exceptions, fail main thread too. if self . exc_info : fail ( '[Thread Failure] ' , exc_info = self . exc_info ) except KeyboardInterrupt : raise Failure ( 'Interrupted by user' ) finally : self . all_tasks_done . release ( )
Override original join() with a timeout and handle keyboard interrupt.
Override original join () with a timeout and handle keyboard interrupt .