def register(action)
      if(action.is_a?(Array))
        if(action.find{|x|x.is_a?(Action)}.nil?)
          raise ArgumentError.new('Array contains non ActionTimer::Action objects')
        end
      else
        raise ArgumentError.new('Expecting an ActionTimer::Action object') unless action.is_a?(Action)
        action = [action]
      end
      @add_lock.synchronize{ @new_actions = @new_actions + action }
      wakeup if running?
    end
def register(action)
      if(action.is_a?(Array))
        if(action.find{|x|x.is_a?(Action)}.nil?)
          raise ArgumentError.new('Array contains non ActionTimer::Action objects')
        end
      else
        raise ArgumentError.new('Expecting an ActionTimer::Action object') unless action.is_a?(Action)
        action = [action]
      end
      @add_lock.synchronize{ @new_actions = @new_actions + action }
      wakeup if running?
    end
actions:: Array of actions or single ActionTimer::Action
 Add single or multiple Actions to the timer at once