code: def join_queue(queue, timeout=None):
      
      with queue.all_tasks_done:
          while queue.unfinished_tasks:
              finished_in_time = queue.all_tasks_done.wait(timeout=timeout)
              if not finished_in_time:
                  raise QueueJoinTimeout("timed out after %.02f seconds" % timeout)
docs: The join() method of standard queues in Python doesn't support
      timeouts.  This implements the same functionality as that method,
      with optional timeout support, by depending the internals of
      Queue.
  
      Raises:
        QueueJoinTimeout: When the timeout is reached.
  
      Parameters:
        timeout(Optional[float])