[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/debbugs ea87a30 202/311: Make debbugs-newest-bugs more
From: |
Stefan Monnier |
Subject: |
[elpa] externals/debbugs ea87a30 202/311: Make debbugs-newest-bugs more robust |
Date: |
Sun, 29 Nov 2020 18:42:11 -0500 (EST) |
branch: externals/debbugs
commit ea87a30e113bdac0631bb3064db7825d2e44f1ff
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>
Make debbugs-newest-bugs more robust
* packages/debbugs/debbugs.el (debbugs-newest-bugs):
Prevent errors when this function is called in rapid sequence.
(debbugs-get-status): Fix wrong check for expiration time.
---
debbugs.el | 63 ++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 35 insertions(+), 28 deletions(-)
diff --git a/debbugs.el b/debbugs.el
index 7feb023..8221c37 100644
--- a/debbugs.el
+++ b/debbugs.el
@@ -244,33 +244,40 @@ patch:
"Return the list of bug numbers, according to AMOUNT (a number) latest bugs."
(if (= amount 1)
;; We cache it as bug "0" in `debbugs-cache-data'.
- (list (cdr (assoc 'newest_bug
- (let ((status (gethash 0 debbugs-cache-data)))
- (if (and
- status
- (or
- (null debbugs-cache-expiry)
- (and
- (natnump debbugs-cache-expiry)
- (> (cdr (assoc 'cache_time status))
- (- (float-time) debbugs-cache-expiry)))))
- ;; Take the cached value.
- status
-
- (setq
- status
- ;; Put also a time stamp.
- (list
- (cons 'cache_time (float-time))
- (cons 'newest_bug
- (caar
- (soap-invoke
- debbugs-wsdl debbugs-port "newest_bugs" amount)))))
- (if (and debbugs-cache-expiry (natnump debbugs-cache-expiry))
- ;; Cache it.
- (puthash 0 status debbugs-cache-data)
- ;; Don't cache.
- status))))))
+ (let ((status (gethash 0 debbugs-cache-data)))
+ (unless (and
+ status
+ (or
+ (null debbugs-cache-expiry)
+ (and
+ (natnump debbugs-cache-expiry)
+ (> (cdr (assoc 'cache_time status))
+ (- (float-time) debbugs-cache-expiry)))))
+ ;; Due to `debbugs-gnu-completion-table', this function
+ ;; could be called in rapid sequence. We cache temporarily
+ ;; the value nil, therefore.
+ (when (natnump debbugs-cache-expiry)
+ (puthash
+ 0
+ (list (cons 'cache_time (1+ (- (float-time) debbugs-cache-expiry)))
+ (list 'newest_bug))
+ debbugs-cache-data))
+ ;; Compute the value.
+ (setq
+ status
+ (list
+ (cons 'cache_time (float-time))
+ (cons 'newest_bug
+ (caar
+ (soap-invoke
+ debbugs-wsdl debbugs-port "newest_bugs" amount)))))
+
+ ;; Cache it.
+ (when (or (null debbugs-cache-expiry) (natnump debbugs-cache-expiry))
+ (puthash 0 status debbugs-cache-data)))
+
+ ;; Return the value, as list.
+ (list (cdr (assoc 'newest_bug status))))
(sort
(car (soap-invoke debbugs-wsdl debbugs-port "newest_bugs" amount)) '<)))
@@ -461,7 +468,7 @@ Example:
(when (stringp (cdr y))
(setcdr y (split-string (cdr y) ",\\| " t))))
;; Cache the result, and return.
- (if (and debbugs-cache-expiry (natnump debbugs-cache-expiry))
+ (if (or (null debbugs-cache-expiry) (natnump debbugs-cache-expiry))
(puthash
(cdr (assoc 'key x))
;; Put also a time stamp.
- [elpa] externals/debbugs 9782850 198/311: Release debbugs 0.9.7, (continued)
- [elpa] externals/debbugs 9782850 198/311: Release debbugs 0.9.7, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 3939b8d 195/311: Various changes in debbugs-gnu, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 4a7a8d8 182/311: Add a new command debbugs-gnu-patches, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 6c4477e 188/311: Allow inclusing the closed bugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 5aea250 186/311: Fix last checkin, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 60502ec 193/311: Release debbugs 0.9.6., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs b816a36 192/311: Further work on debbugs-gnu-search, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs d8ca060 200/311: Improve debbugs menu and buffer name, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs ac30a2e 197/311: Fix the values possible for status queries in debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 16178a5 201/311: Use dynamic completion for bug numbers in debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs ea87a30 202/311: Make debbugs-newest-bugs more robust,
Stefan Monnier <=
- [elpa] externals/debbugs d979be4 209/311: Documentation enhancement for debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 636511a 232/311: Support "forwarded" in debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 1b1f19b 229/311: Not all bug reports have a subject, apparently., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs c304562 233/311: Release debbugs 0.16, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 04f0926 230/311: Avoid double entries in debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 8e2d3ed 235/311: * packages/debbugs/instructions.texi: Add @anchor{}., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs ba4b447 239/311: New command debbugs-control-make-message (Bug#33225), Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs d92eade 238/311: Release debbugs 0.17, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 6751c76 243/311: * packages/debbugs/instructions.texi: Sync with https://www.debian.org/Bugs/server-control., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 07bf4e1 244/311: Search further if d-g-cur-status is nil (Bug#35121), Stefan Monnier, 2020/11/29