aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/timer.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/timer.el b/lisp/timer.el
index 66b16b60fb1..e91fd64ab2f 100644
--- a/lisp/timer.el
+++ b/lisp/timer.el
@@ -183,8 +183,11 @@ fire repeatedly that many seconds apart."
183 nil) 183 nil)
184 (error "Invalid or uninitialized timer"))) 184 (error "Invalid or uninitialized timer")))
185 185
186(defun timer-activate-when-idle (timer) 186(defun timer-activate-when-idle (timer &optional dont-wait)
187 "Arrange to activate TIMER whenever Emacs is next idle." 187 "Arrange to activate TIMER whenever Emacs is next idle.
188If optional argument DONT-WAIT is non-nil, then enable the
189timer to activate immediately, or at the right time, if Emacs
190is already idle."
188 (if (and (timerp timer) 191 (if (and (timerp timer)
189 (integerp (aref timer 1)) 192 (integerp (aref timer 1))
190 (integerp (aref timer 2)) 193 (integerp (aref timer 2))
@@ -206,7 +209,7 @@ fire repeatedly that many seconds apart."
206 (if last 209 (if last
207 (setcdr last (cons timer timers)) 210 (setcdr last (cons timer timers))
208 (setq timer-idle-list (cons timer timers))) 211 (setq timer-idle-list (cons timer timers)))
209 (aset timer 0 t) 212 (aset timer 0 (not dont-wait))
210 (aset timer 7 t) 213 (aset timer 7 t)
211 nil) 214 nil)
212 (error "Invalid or uninitialized timer"))) 215 (error "Invalid or uninitialized timer")))
@@ -384,7 +387,7 @@ This function returns a timer object which you can use in `cancel-timer'."
384 (let ((timer (timer-create))) 387 (let ((timer (timer-create)))
385 (timer-set-function timer function args) 388 (timer-set-function timer function args)
386 (timer-set-idle-time timer secs repeat) 389 (timer-set-idle-time timer secs repeat)
387 (timer-activate-when-idle timer) 390 (timer-activate-when-idle timer t)
388 timer)) 391 timer))
389 392
390(defun with-timeout-handler (tag) 393(defun with-timeout-handler (tag)