class Rufus::Scheduler::Job
def do_trigger(time)
def do_trigger(time) t = Time.now # if there are mutexes, t might be really bigger than time Thread.current[:rufus_scheduler_job] = self Thread.current[:rufus_scheduler_time] = t Thread.current[:rufus_scheduler_timeout] = compute_timeout @last_time = t args = [ self, time ][0, @callable.arity] @callable.call(*args) rescue KillSignal # discard rescue StandardError => se @scheduler.on_error(self, se) ensure post_trigger(time) Thread.current[:rufus_scheduler_job] = nil Thread.current[:rufus_scheduler_time] = nil Thread.current[:rufus_scheduler_timeout] = nil end