emacs.d/elpa/kubernetes-20200114.436/kubernetes-timers.el
2020-02-03 19:45:34 +01:00

43 lines
1.3 KiB
EmacsLisp

;;; kubernetes-timers.el --- Internal timers. -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(require 'subr-x)
(require 'kubernetes-state)
(require 'kubernetes-vars)
;; Timer vars
(defvar kubernetes-timers--poll-timer nil
"Background timer used to poll for updates.
This is used to regularly synchronise local state with Kubernetes.")
(defvar kubernetes-timers--redraw-timer nil
"Background timer used to trigger buffer redrawing.
This is used to display the current state.")
;; Timer management
(defun kubernetes-timers-initialize-timers ()
(unless kubernetes-timers--redraw-timer
(setq kubernetes-timers--redraw-timer (run-with-timer 0 kubernetes-redraw-frequency #'kubernetes-state-trigger-redraw)))
(unless kubernetes-timers--poll-timer
(setq kubernetes-timers--poll-timer (run-with-timer 0 kubernetes-poll-frequency
(lambda ()
(run-hooks 'kubernetes-poll-hook))))))
(defun kubernetes-timers-kill-timers ()
(when-let (timer kubernetes-timers--redraw-timer)
(cancel-timer timer))
(when-let (timer kubernetes-timers--poll-timer)
(cancel-timer timer))
(setq kubernetes-timers--redraw-timer nil)
(setq kubernetes-timers--poll-timer nil))
(provide 'kubernetes-timers)
;;; kubernetes-timers.el ends here