Next: Quitting, Previous: Reading Input, Up: Command Loop [Contents][Index]
The wait functions are designed to wait for a certain amount of time
to pass or until there is input. For example, you may wish to pause in
the middle of a computation to allow the user time to view the display.
sit-for
pauses and updates the screen, and returns immediately if
input comes in, while sleep-for
pauses without updating the
screen.
Note: In FSF Emacs the commands sit-for
and sleep-for
take two arguments to specify the time (one integer and one float
value), instead of a single argument that can be either an integer or a
float.
This function performs redisplay (provided there is no pending input
from the user), then waits seconds seconds, or until input is
available. The result is t
if sit-for
waited the full
time with no input arriving (see input-pending-p
in Peeking and Discarding). Otherwise, the value is nil
.
The argument seconds need not be an integer. If it is a floating
point number, sit-for
waits for a fractional number of seconds.
Redisplay is normally preempted if input arrives, and does not happen at
all if input is available before it starts. (You can force screen
updating in such a case by using force-redisplay
. See Refresh Screen.) If there is no input pending, you can force an update with no
delay by using (sit-for 0)
.
If nodisplay is non-nil
, then sit-for
does not
redisplay, but it still returns as soon as input is available (or when
the timeout elapses).
The usual purpose of sit-for
is to give the user time to read
text that you display.
This function simply pauses for seconds seconds without updating
the display. This function pays no attention to available input. It
returns nil
.
The argument seconds need not be an integer. If it is a floating
point number, sleep-for
waits for a fractional number of seconds.
Use sleep-for
when you wish to guarantee a delay.
See Time of Day, for functions to get the current time.
Next: Quitting, Previous: Reading Input, Up: Command Loop [Contents][Index]