code: def join_all(joinables, timeout):
      
      started, elapsed = current_millis(), 0
      for ob in joinables:
          ob.join(timeout=timeout / 1000)
          elapsed = current_millis() - started
          timeout = max(0, timeout - elapsed)
docs: Wait on a list of objects that can be joined with a total
      timeout represented by ``timeout``.
  
      Parameters:
        joinables(object): Objects with a join method.
        timeout(int): The total timeout in milliseconds.