class Timers::Events::Handle

Represents a cancellable handle for a specific timer event.

Attributes

time[R]

The absolute time that the handle should be fired at.

Public Class Methods

new(time, callback) click to toggle source
# File lib/timers/events.rb, line 33
def initialize(time, callback)
        @time = time
        @callback = callback
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/timers/events.rb, line 53
def <=> other
        @time <=> other.time
end
cancel!() click to toggle source

Cancel this timer, O(1).

# File lib/timers/events.rb, line 42
def cancel!
        # The simplest way to keep track of cancelled status is to nullify the
        # callback. This should also be optimal for garbage collection.
        @callback = nil
end
cancelled?() click to toggle source

Has this timer been cancelled? Cancelled timer's don't fire.

# File lib/timers/events.rb, line 49
def cancelled?
        @callback.nil?
end
fire(time) click to toggle source

Fire the callback if not cancelled with the given time parameter.

# File lib/timers/events.rb, line 58
def fire(time)
        @callback.call(time) if @callback
end