Function: gnus-async-wait-for-article
gnus-async-wait-for-article is a byte-compiled function defined in
gnus-async.el.gz.
Signature
(gnus-async-wait-for-article ARTICLE)
Documentation
Wait until ARTICLE is no longer the currently-being-fetched article.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-async.el.gz
(defun gnus-async-wait-for-article (article)
"Wait until ARTICLE is no longer the currently-being-fetched article."
(save-excursion
(gnus-async-set-buffer)
(let ((proc (nntp-find-connection (current-buffer)))
(nntp-server-buffer (current-buffer))
(nntp-have-messaged nil)
(tries 0))
(when proc
(condition-case nil
;; FIXME: we could stop waiting after some
;; timeout, but this is the wrong place to do it.
;; rather than checking time-spent-waiting, we
;; should check time-since-last-output, which
;; needs to be done in nntp.el.
(while (eq article gnus-async-current-prefetch-article)
(cl-incf tries)
(when (nntp-accept-process-output proc)
(setq tries 0))
(when (and (not nntp-have-messaged)
(= tries 3))
(gnus-message 5 "Waiting for async article...")
(setq nntp-have-messaged t)))
(quit
;; if the user interrupted on a slow/hung connection,
;; do something friendly.
(when (> tries 3)
(setq gnus-async-current-prefetch-article nil))
(signal 'quit nil)))
(when nntp-have-messaged
(gnus-message 5 ""))))))