class Rufus::Scheduler

def initialize (params={})

def initialize (params={})
  super()
  @pending_jobs = []
  @cron_jobs = {}
  @non_cron_jobs = {}
  @schedule_queue = Queue.new
  @unschedule_queue = Queue.new
    #
    # sync between the step() method and the [un]schedule
    # methods is done via these queues, no more mutex
  @scheduler_thread = nil
  @precision = 0.250
    # every 250ms, the scheduler wakes up (default value)
  begin
    self.precision = Float(params[:scheduler_precision])
  rescue Exception => e
    # let precision at its default value
  end
  @thread_name = params[:thread_name] || 'rufus scheduler'
  #@correction = 0.00045
  @exit_when_no_more_jobs = false
  #@dont_reschedule_every = false
  @last_cron_second = -1
  @stopped = true
end