Function: timer--activate

timer--activate is a byte-compiled function defined in timer.el.gz.

Signature

(timer--activate TIMER &optional TRIGGERED-P REUSE-CELL IDLE)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/timer.el.gz
(defun timer--activate (timer &optional triggered-p reuse-cell idle)
  (if (and (timerp timer)
	   (integerp (timer--high-seconds timer))
	   (integerp (timer--low-seconds timer))
	   (integerp (timer--usecs timer))
	   (integerp (timer--psecs timer))
	   (timer--function timer))
      (let ((timers (if idle timer-idle-list timer-list))
	    last)
	;; Skip all timers to trigger before the new one.
	(while (and timers (timer--time-less-p (car timers) timer))
	  (setq last timers
		timers (cdr timers)))
	(if reuse-cell
	    (progn
	      (setcar reuse-cell timer)
	      (setcdr reuse-cell timers))
	  (setq reuse-cell (cons timer timers)))
	;; Insert new timer after last which possibly means in front of queue.
        (setf (cond (last (cdr last))
                    (idle timer-idle-list)
                    (t    timer-list))
              reuse-cell)
	(setf (timer--triggered timer) triggered-p)
	(setf (timer--idle-delay timer) idle)
	nil)
    (error "Invalid or uninitialized timer")))