Is there any way to write something like this without taking over emacs?
(defun dumb-wait (seconds)
    (let ((done (+ (second (current-time)) seconds)))
        (while (< (second (current-time)) done)
            (message "waiting"))))
(dump-wait 5) will block emacs from 5 seconds. Is there anyway to write this so it doesn't block? I just want to be in a loop and check some condition from time to time, and still be able to use emacs.
Thanks!