;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\301%\210\311\312\313\314\310\305\315\316&\210\311\305\306\317\310\305\315\320&\210\311\321\322\323\310\305\315\324&\210\311\325\306\326\310\305\315\320&\210\311\327\330\331\310\305\315\332&\210\311\333\306\334\335\336\310\305\315\337& \207" [require gnus gnus-sum nntp custom-declare-group gnus-asynchronous nil "Support for asynchronous operations." :group custom-declare-variable gnus-use-article-prefetch 30 "If non-nil, prefetch articles in groups that allow this.\nIf a number, prefetch only that many articles forward;\nif t, prefetch as many articles as possible." :type (choice (const :tag "off" nil) (const :tag "all" t) (integer :tag "some" 0)) "If nil, inhibit all Gnus asynchronicity.\nIf non-nil, let the other asynch variables be heeded." boolean gnus-prefetched-article-deletion-strategy '(read exit) "List of symbols that say when to remove articles from the prefetch buffer.\nPossible values in this list are `read', which means that\narticles are removed as they are read, and `exit', which means\nthat all articles belonging to a group are removed on exit\nfrom that group." (set (const read) (const exit)) gnus-use-header-prefetch "If non-nil, prefetch the headers to the next group." gnus-async-prefetch-article-p 'gnus-async-unread-p "Function called to say whether an article should be prefetched or not.\nThe function is called with one parameter -- the article data.\nIt should return non-nil if the article is to be prefetched." function gnus-async-post-fetch-function "Function called after an article has been prefetched.\nThe function will be called narrowed to the region of the article\nthat was fetched." :version "24.1" (choice (const nil) function)] 10)
(defvar gnus-async-prefetch-article-buffer " *Async Prefetch Article*")
(defvar gnus-async-article-alist nil)
(defvar gnus-async-article-semaphore '(nil))
(defvar gnus-async-fetch-list nil)
(defvar gnus-async-hashtb nil)
(defvar gnus-async-current-prefetch-group nil)
(defvar gnus-async-current-prefetch-article nil)
(defvar gnus-async-timer nil)
(defvar gnus-async-prefetch-headers-buffer " *Async Prefetch Headers*")
(defvar gnus-async-header-prefetched nil)
#@74 Say whether GROUP is fetched from a server that supports asynchronicity.
(defalias 'gnus-group-asynchronous-p #[(group) "\301\302!!\207" [group gnus-asynchronous-p gnus-find-method-for-group] 3 (#$ . 2634)])
#@35 Wait until SEMAPHORE is released.
(defalias 'gnus-async-get-semaphore #[(semaphore) "J\301C\244G\302U?\205 \303\304!\210\202 \207" [semaphore nil 2 sleep-for 1] 2 (#$ . 2849)])
#@20 Release SEMAPHORE.
(defalias 'gnus-async-release-semaphore #[(semaphore) "J\301\241\207" [semaphore nil] 2 (#$ . 3035)])
(defalias 'gnus-async-with-semaphore '(macro . #[(&rest forms) "\301\302\303BB\304BB\207" [forms unwind-protect progn (gnus-async-get-semaphore 'gnus-async-article-semaphore) ((gnus-async-release-semaphore 'gnus-async-article-semaphore))] 4]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307\310\"\207" [put gnus-async-with-semaphore lisp-indent-function 0 edebug-form-spec (body) gnus-add-shutdown gnus-async-close gnus] 4)
(defalias 'gnus-async-close #[nil "\211\211\205 \n;\203 \306\202 \307\n!)\203 \310 !\210\311 \210)\211\211\2054 \n;\2031 \306\2022 \307\n!)\203? \310 !\210\311 \210)\312\211\312\211\207" [gnus-async-prefetch-article-buffer buf buffer gnus-async-prefetch-headers-buffer gnus-async-hashtb gnus-async-article-alist get-buffer buffer-name kill-buffer gnus-prune-buffers nil gnus-async-header-prefetched] 3])
(defalias 'gnus-async-set-buffer #[nil "\302\303\"\210 ?\205 \304\305!\211\207" [gnus-async-prefetch-article-buffer gnus-async-hashtb nnheader-set-temp-buffer t gnus-make-hashtable 1023] 3])
#@19 Stop prefetching.
(defalias 'gnus-async-halt-prefetch #[nil "\301\211\207" [gnus-async-fetch-list nil] 2 (#$ . 4216)])
#@77 Possibly prefetch several articles starting with the article after ARTICLE.
(defalias 'gnus-async-prefetch-next #[(group article summary) "\211\205 \306\307 !!)\205U \n\205U \310!\205U r\fq\210
\236>)A@@\211\205T \203G \3111B \312\313!0\202F \210\202G \210\314\315\316\317&\211*\207" [summary buffer gnus-asynchronous group gnus-summary-buffer gnus-newsgroup-data buffer-live-p get-buffer gnus-group-asynchronous-p (error) nnheader-cancel-timer gnus-async-timer run-with-idle-timer 0.1 nil gnus-async-prefetch-article bdata article next] 8 (#$ . 4342)])
#@59 Possibly prefetch several articles starting with ARTICLE.
(defalias 'gnus-async-prefetch-article #[(group article summary &optional next) "\211\205 \306\307 !!)\204 \310\216\311\312!\210\313\211)\207\205\314 \205\f\2033 \315\216\311\312!\210\n\210\nA)\f\316\317!\205\211\205J \306\307 !!)\205\f\203V \n\205\320\216\311\312!\210\f\204\307 \n?\313\236>)\313 !\"!\211A!\242\211 \203\303 \"\247\203\232 \321\"S\211\"!\202\234 \"\203\303 \322 @\211\"\204| \321!\203| # !\203| \nB\202| \n\237+\203\320 \n@)\205\205rq\210\313$\323 \210db\210\324 $\325$\f%\307%!&'
\203\326\327\330$\210()\331\",*\207" [summary buffer gnus-async-fetch-list gnus-asynchronous next do-message buffer-live-p get-buffer #[nil "\300\301!\207" [gnus-async-release-semaphore gnus-async-article-semaphore] 2] gnus-async-get-semaphore gnus-async-article-semaphore nil gnus-alive-p #[nil "\300\301!\207" [gnus-async-release-semaphore gnus-async-article-semaphore] 2] t gnus-group-asynchronous-p #[nil "\300\301!\207" [gnus-async-release-semaphore gnus-async-article-semaphore] 2] natnump gnus-async-prefetched-article-entry gnus-async-set-buffer point-marker gnus-make-async-article-function gnus-message 9 "Prefetching article %d in group %s" gnus-request-article do-fetch group gnus-use-article-prefetch gnus-newsgroup-data bdata article d data n gnus-async-prefetch-article-p mark gnus-async-prefetch-article-buffer nntp-server-buffer nnheader-callback-function gnus-async-current-prefetch-group gnus-async-current-prefetch-article] 7 (#$ . 4925)])
#@29 Return a callback function.
(defalias 'gnus-make-async-article-function #[(group article mark summary next) "\305\306\307\310 \n\f\257E\207" [group article mark summary next lambda (arg) gnus-async-article-callback arg] 9 (#$ . 6550)])
#@62 Function called when an async article is done being fetched.
(defalias 'gnus-async-article-callback #[(arg group article mark summary next) "\212\306 \203X \307 \210\212\214\nd}\210\203% \310\f!\203% \214\nd}\210\311
\f\"\210)\312\313!\2030 \313!\210\203; !\210*\314\216\315\316!\210\317\320\321\f
#\"\n\322 \f
\257B)\211\205f \323\324!!)\204x \325\216\315\316!\210\306\211)\202\200 \326\f\327$)\207" [gnus-async-current-prefetch-article arg mark gnus-agent group article nil gnus-async-set-buffer gnus-agent-group-covered-p gnus-agent-store-article fboundp gnus-html-prefetch-images #[nil "\300\301!\207" [gnus-async-release-semaphore gnus-async-article-semaphore] 2] gnus-async-get-semaphore gnus-async-article-semaphore intern format "%s-%d" point-max-marker buffer-live-p get-buffer #[nil "\300\301!\207" [gnus-async-release-semaphore gnus-async-article-semaphore] 2] gnus-async-prefetch-article t summary gnus-async-post-fetch-function gnus-async-hashtb gnus-async-article-alist buffer gnus-async-fetch-list next] 6 (#$ . 6795)])
#@54 Return non-nil if DATA represents an unread article.
(defalias 'gnus-async-unread-p #[(data) "A@ U\207" [data gnus-unread-mark] 2 (#$ . 7865)])
#@62 See whether we have ARTICLE from GROUP and put it in BUFFER.
(defalias 'gnus-async-request-fetched-article #[(group article buffer) "\247\205; \n\232\203 =\203 \306!\210\307 \"\211\205: \212\310 \210\311
\fA@\fAA@#\210\312
>\2038 \313\f!\210)\314)\207" [article group gnus-async-current-prefetch-group gnus-async-current-prefetch-article entry buffer gnus-async-wait-for-article gnus-async-prefetched-article-entry gnus-async-set-buffer copy-to-buffer read gnus-async-delete-prefetched-entry t gnus-prefetched-article-deletion-strategy] 5 (#$ . 8016)])
#@70 Wait until ARTICLE is no longer the currently-being-fetched article.
(defalias 'gnus-async-wait-for-article #[(article) "\212\306 \210p ;\203 \307!\202 \310\211\f\2038 \f\211A\242\211\2038 \nA@=\203 \n@\310\211\204 \205T \311!\312>\203H \202T \313\314!!\210\315\n \"\310-p\310\316\211\205\255 \3171\225 =\205\221
T\320!\203{ \316\204g
\321U\203g \322\323\324\"\210\325\202g 0\202\243 \210
\321V\203\237 \310\326\327\310\"\210\205\255 \322\323\330\"-\207" [buffer nntp-connection-alist entry process alist tries gnus-async-set-buffer get-buffer nil process-status (open run) nntp-kill-buffer process-buffer delq 0 (quit) nntp-accept-process-output 3 gnus-message 5 "Waiting for async article..." t signal quit "" nntp-have-messaged nntp-server-buffer proc article gnus-async-current-prefetch-article] 5 (#$ . 8585)])
#@37 Delete ENTRY from buffer and alist.
(defalias 'gnus-async-delete-prefetched-entry #[(entry) "\3031 A@AA@|\210A@\304\211\223\210AA@\304\211\2230\202# \210\202$ \210\305\216\306\307!\210\310 \"\311@\n\")\207" [entry gnus-async-article-alist gnus-async-hashtb (error) nil #[nil "\300\301!\207" [gnus-async-release-semaphore gnus-async-article-semaphore] 2] gnus-async-get-semaphore gnus-async-article-semaphore delq unintern] 3 (#$ . 9454)])
#@66 Remove all articles belonging to GROUP from the prefetch buffer.
(defalias 'gnus-async-prefetch-remove-group #[(group) "\305!\2050 \306 >\2050 \212\307 \210\n\310\211\205/ \f@\3118\232\203' \312!\210\fA\211\204 \310+\207" [group gnus-prefetched-article-deletion-strategy gnus-async-article-alist entry --dolist-tail-- gnus-group-asynchronous-p exit gnus-async-set-buffer nil 3 gnus-async-delete-prefetched-entry] 4 (#$ . 9907)])
#@66 Return the entry for ARTICLE in GROUP if it has been prefetched.
(defalias 'gnus-async-prefetched-article-entry #[(group article) "\212\305 \210\306\307\310 #\n\"\236)\211\203C \fA@\fAA@U\203C \31115 \fA@\312\211\223\210\fAA@\312\211\2230\2029 \210\202: \210\313\f\"\312\202D \f)\207" [group article gnus-async-hashtb gnus-async-article-alist entry gnus-async-set-buffer intern-soft format "%s-%d" (error) nil delq] 6 (#$ . 10351)])
#@39 Prefetch the headers for group GROUP.
(defalias 'gnus-async-prefetch-headers #[(group) "\212\306 \205= \n\205= \307!\205= \f<\205= \310!\211\205= \311\312
\311\"\210\313 \210p\314\315\316\304BEE\317#**\207" [unread gnus-use-header-prefetch gnus-asynchronous group gnus-async-header-prefetched gnus-async-prefetch-headers-buffer nil gnus-group-asynchronous-p gnus-list-of-unread-articles t nnheader-set-temp-buffer erase-buffer lambda (arg) setq gnus-retrieve-headers nnheader-callback-function nntp-server-buffer gnus-fetch-old-headers] 7 (#$ . 10795)])
#@41 See whether we have prefetched headers.
(defalias 'gnus-async-retrieve-fetched-headers #[(articles group) "\2053 \306 !\2053 \n<\2053 \n@\232\2053 \nA\232\2053 \212\307\f\310\"\210\311 \210\312
ed#\210\313 \210\314)\310\207" [gnus-use-header-prefetch group gnus-async-header-prefetched articles gnus-async-prefetch-headers-buffer nntp-server-buffer gnus-group-asynchronous-p nnheader-set-temp-buffer t nntp-decode-text copy-to-buffer erase-buffer nil] 4 (#$ . 11370)])
(provide 'gnus-async)
|