aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/timer.el
diff options
context:
space:
mode:
authorRichard M. Stallman1997-08-28 01:03:17 +0000
committerRichard M. Stallman1997-08-28 01:03:17 +0000
commit83ff83c08c2a9841677c4dab24b1af5bd034b3e3 (patch)
treef825d3808552ed28dc0b7aa853cd0a3aad8ed3a7 /lisp/timer.el
parentaf56433dc515b465aa87d229252103cf3fdd3a41 (diff)
downloademacs-83ff83c08c2a9841677c4dab24b1af5bd034b3e3.tar.gz
emacs-83ff83c08c2a9841677c4dab24b1af5bd034b3e3.zip
(timer-event-handler): Reactivate timer first,
then run the handler function.
Diffstat (limited to 'lisp/timer.el')
-rw-r--r--lisp/timer.el12
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/timer.el b/lisp/timer.el
index 68a9e105dae..f60763c2f68 100644
--- a/lisp/timer.el
+++ b/lisp/timer.el
@@ -264,10 +264,6 @@ This function is called, by name, directly by the C code."
264 (progn 264 (progn
265 ;; Delete from queue. 265 ;; Delete from queue.
266 (cancel-timer timer) 266 (cancel-timer timer)
267 ;; Run handler
268 (condition-case nil
269 (apply (aref timer 5) (aref timer 6))
270 (error nil))
271 ;; Re-schedule if requested. 267 ;; Re-schedule if requested.
272 (if (aref timer 4) 268 (if (aref timer 4)
273 (if (aref timer 7) 269 (if (aref timer 7)
@@ -282,7 +278,13 @@ This function is called, by name, directly by the C code."
282 (aref timer 4)))) 278 (aref timer 4))))
283 (if (> repeats timer-max-repeats) 279 (if (> repeats timer-max-repeats)
284 (timer-inc-time timer (* (aref timer 4) repeats))))) 280 (timer-inc-time timer (* (aref timer 4) repeats)))))
285 (timer-activate timer)))) 281 (timer-activate timer)))
282 ;; Run handler.
283 ;; We do this after rescheduling so that the handler function
284 ;; can cancel its own timer successfully with cancel-timer.
285 (condition-case nil
286 (apply (aref timer 5) (aref timer 6))
287 (error nil)))
286 (error "Bogus timer event")))) 288 (error "Bogus timer event"))))
287 289
288;; This function is incompatible with the one in levents.el. 290;; This function is incompatible with the one in levents.el.