www.delorie.com/gnu/docs/elisp-manual-21/elisp_316.html   search  
 
Buy the book!


GNU Emacs Lisp Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

21.9 Waiting for Elapsed Time or Input

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.

Function: sit-for seconds &optional millisec nodisp
This function performs redisplay (provided there is no pending input from the user), then waits seconds seconds, or until input is available. The value is t if sit-for waited the full time with no input arriving (see input-pending-p in 21.7.5 Miscellaneous Event Input Features). 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. Some systems support only a whole number of seconds; on these systems, seconds is rounded down.

The optional argument millisec specifies an additional waiting period measured in milliseconds. This adds to the period specified by seconds. If the system doesn't support waiting fractions of a second, you get an error if you specify nonzero millisec.

The expression (sit-for 0) is a convenient way to request a redisplay, without any delay. See section 38.2 Forcing Redisplay.

If nodisp is non-nil, then sit-for does not redisplay, but it still returns as soon as input is available (or when the timeout elapses).

Iconifying or deiconifying a frame makes sit-for return, because that generates an event. See section 21.6.10 Miscellaneous Window System Events.

The usual purpose of sit-for is to give the user time to read text that you display.

Function: sleep-for seconds &optional millisec
This function simply pauses for seconds seconds without updating the display. It 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. Some systems support only a whole number of seconds; on these systems, seconds is rounded down.

The optional argument millisec specifies an additional waiting period measured in milliseconds. This adds to the period specified by seconds. If the system doesn't support waiting fractions of a second, you get an error if you specify nonzero millisec.

Use sleep-for when you wish to guarantee a delay.

See section 40.5 Time of Day, for functions to get the current time.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003