def schedule(obj, time = nil)
      time ||= now
      @occurrences[obj] = time
      parent.schedule([:clock, self], unscale_time(time)) if parent && @occurrences.min_key == obj
    end
def schedule(obj, time = nil)
      time ||= now
      @occurrences[obj] = time
      parent.schedule([:clock, self], unscale_time(time)) if parent && @occurrences.min_key == obj
    end
schedules an occurrence at the given time with the given object,
 defaulting to the current time