Waits until all tasks completed or *timeout* seconds passed.

    # Raises
    Timeout: If the *timeout* is exceeded.

def wait(self, timeout=None):
    """
    Waits until all tasks completed or *timeout* seconds passed.

    # Raises
    Timeout: If the *timeout* is exceeded.
    """

    t_start = time.clock()
    if not wait_for_condition(self, lambda s: s._tasks == 0, timeout):
      raise Timeout