changeset 59190:6142d449ffb8

(Timers): Discuss timers vs editing the buffer and undo.
author Richard M. Stallman <rms@gnu.org>
date Wed, 29 Dec 2004 20:10:57 +0000
parents 60ffced08532
children f6d6e52c03a4
files lispref/os.texi
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lispref/os.texi	Wed Dec 29 17:25:02 2004 +0000
+++ b/lispref/os.texi	Wed Dec 29 20:10:57 2004 +0000
@@ -1368,6 +1368,11 @@
 timer to call a function that takes substantial time to run is likely
 to be annoying.
 
+  Timer functions should normally not alter the current buffer
+contents, but it may be ok to alter some other buffer that exists for
+special purposes.  A general guideline is that if a buffer has undo
+enabled, timers should not write in it.
+
 @deffn Command run-at-time time repeat function &rest args
 This sets up a timer that calls the function @var{function} with
 arguments @var{args} at time @var{time}.  If @var{repeat} is a number
@@ -1481,6 +1486,11 @@
 input.  Then it becomes idle again, and all the idle timers that are
 set up to repeat will subsequently run another time, one by one.
 
+  It is legitimate for an idle timer to edit the current buffer.  If
+it does, it should explicitly call @code{undo-boundary} once at the
+beginning and once just before exiting, since Emacs won't do that
+automatically for an idle timer.
+
 @defun cancel-timer timer
 Cancel the requested action for @var{timer}, which should be a value
 previously returned by @code{run-at-time} or @code{run-with-idle-timer}.