summaryrefslogtreecommitdiff
path: root/lisp/gnus/gnus-async.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/gnus/gnus-async.el')
-rw-r--r--lisp/gnus/gnus-async.el11
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el
index e6fe2db3555..57f667c5e50 100644
--- a/lisp/gnus/gnus-async.el
+++ b/lisp/gnus/gnus-async.el
@@ -141,8 +141,15 @@ that was fetched."
(cancel-timer 'gnus-async-timer)))
(setq gnus-async-timer
(run-with-idle-timer
- 0.1 nil #'gnus-async-prefetch-article
- group (gnus-data-number next) summary)))))))
+ 0.1 nil
+ (lambda ()
+ ;; When running from a timer, `C-g' is inhibited.
+ ;; But the prefetch action may (when there's a
+ ;; network problem or the like) hang (or take a
+ ;; long time), so allow quitting anyway.
+ (let ((inhibit-quit nil))
+ (gnus-async-prefetch-article
+ group (gnus-data-number next) summary))))))))))
(defun gnus-async-prefetch-article (group article summary &optional next)
"Possibly prefetch several articles starting with ARTICLE."