Function: spinner--start-timer

spinner--start-timer is a byte-compiled function defined in spinner.el.

Signature

(spinner--start-timer SPINNER)

Documentation

Start a SPINNER's timer.

Source Code

;; Defined in ~/.emacs.d/elpa/spinner-1.7.4/spinner.el
(defun spinner--start-timer (spinner)
  "Start a SPINNER's timer."
  (let ((old-timer (spinner--timer spinner)))
    (when (timerp old-timer)
      (cancel-timer old-timer))

    (setf (spinner--active-p spinner) t)

    (unless (ignore-errors (> (spinner--fps spinner) 0))
      (error "A spinner's FPS must be a positive number"))
    (setf (spinner--counter spinner)
          (round (- (* (or (spinner--delay spinner) 0)
                       (spinner--fps spinner)))))
    ;; Create timer.
    (let* ((repeat (/ 1.0 (spinner--fps spinner)))
           (time (timer-next-integral-multiple-of-time (current-time) repeat))
           ;; Create the timer as a lex variable so it can cancel itself.
           (timer (spinner--timer spinner)))
      (timer-set-time timer time repeat)
      (timer-set-function timer #'spinner--timer-function (list spinner))
      (timer-activate timer)
      ;; Return a stopping function.
      (lambda () (spinner-stop spinner)))))