2003-10-22  Daiki Ueno  <ueno@unixuser.org>
 
+       * riece-server.el (riece-quit-server-process): Use riece-run-at-time.
+       * riece-xemacs.el (riece-run-at-time): New function.
+       * riece-emacs.el (riece-run-at-time): New alias.
+
        * riece-misc.el (riece-get-identities-on-server): New function.
        (riece-get-users-on-server): Use it.
 
 
 (defalias 'riece-overlay-start 'overlay-start)
 (defalias 'riece-overlay-buffer 'overlay-buffer)
 
+(defalias 'riece-run-at-time 'run-at-time)
+
 (provide 'riece-emacs)
 
 ;;; riece-emacs.el ends here
 
 (eval-when-compile
   (autoload 'riece-exit "riece"))
 (defun riece-quit-server-process (process &optional message)
-  (run-at-time riece-quit-timeout nil
-              (lambda (process)
-                (when (rassq process riece-server-process-alist)
-                  (riece-close-server-process process)
-                  ;; If no server process is available, exit.
-                  (unless riece-server-process-alist
-                    (riece-exit))))
-              process)
+  (riece-run-at-time riece-quit-timeout nil
+                    (lambda (process)
+                      (when (rassq process riece-server-process-alist)
+                        (riece-close-server-process process)
+                        ;; If no server process is available, exit.
+                        (unless riece-server-process-alist
+                          (riece-exit))))
+                    process)
   (riece-process-send-string process
                             (if message
                                 (format "QUIT :%s\r\n" message)
 
 (defalias 'riece-overlay-start 'extent-start-position)
 (defalias 'riece-overlay-buffer 'extent-buffer)
 
+;;; stolen (and renamed) from nnheaderxm.el.
+(defun riece-run-at-time (time repeat function &rest args)
+  (start-itimer
+   "riece-run-at-time"
+   `(lambda ()
+      (,function ,@args))
+   time repeat))
+
 (provide 'riece-xemacs)
 
 ;;; riece-xemacs.el ends here