branch: elpa/hyperdrive
commit 05a0421bbb835147eb6faa3a14a2903dac007874
Author: Joseph Turner <jos...@ushin.org>
Commit: Joseph Turner <jos...@ushin.org>

    Change: (hyperdrive-fill-version-ranges) Use finishedp flag
    
    This doesn't change the behavior, but I think the intent is clearer.
---
 hyperdrive-lib.el | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/hyperdrive-lib.el b/hyperdrive-lib.el
index 1b4fa19501..b1582b8070 100644
--- a/hyperdrive-lib.el
+++ b/hyperdrive-lib.el
@@ -816,18 +816,20 @@ with no arguments."
                       (funcall finally))))
          (limit hyperdrive-fill-version-ranges-limit)
          (queue (make-plz-queue :limit hyperdrive-queue-size
-                                :finally finally)))
+                                :finally finally))
+         ;; Flag used in the nonexistent-queue finalizer.
+         finishedp)
     (cl-labels ((fill-existent (entry)
                   ;; For existent entries, send requests in series.
                   (setf (hyperdrive-entry-version entry)
                         ;; Fill end of previous range.
                         (1- (car (hyperdrive-entry-version-range entry))))
-                  (when (and (cl-plusp limit)
-                             (eq 'unknown (hyperdrive-entry-exists-p entry)))
-                    ;; Recurse backward through history.
-                    (fill-entry entry)
-                    ;; Return non-nil to indicate that a request was made.
-                    t))
+                  (if (and (cl-plusp limit)
+                           (eq 'unknown (hyperdrive-entry-exists-p entry)))
+
+                      ;; Recurse backward through history.
+                      (fill-entry entry)
+                    (setf finishedp t)))
                 (fill-nonexistent (entry)
                   (let ((nonexistent-queue (make-plz-queue
                                             :limit hyperdrive-queue-size
@@ -837,15 +839,14 @@ with no arguments."
                                                        (let 
((last-requested-entry (hyperdrive-copy-tree entry t)))
                                                          (cl-incf 
(hyperdrive-entry-version last-requested-entry))
                                                          ;; (message "ENTRY2: 
%s %s" (hyperdrive-entry-version entry) (hyperdrive-entry-exists-p 
last-requested-entry))
-                                                         (unless (if 
(hyperdrive-entry-exists-p last-requested-entry)
-                                                                     
(fill-existent entry)
-                                                                   
(fill-nonexistent entry))
-                                                           ;; (unless 
finally-ran-p
-                                                           ;;   (funcall 
finally))
-                                                           ;; (message 
"NONEXISTENT-QUEUE-FINALLY: Calling plz-queue-finally...")
+                                                         (if 
(hyperdrive-entry-exists-p last-requested-entry)
+                                                             (fill-existent 
entry)
+                                                           (fill-nonexistent 
entry))
+                                                         ;; (message 
"NONEXISTENT-QUEUE-FINALLY: Calling plz-queue-finally...")
+                                                         (when finishedp
                                                            (funcall 
finally)))))))
                     ;; For nonexistent entries, send requests in parallel.
-                    (cl-dotimes (i hyperdrive-queue-size 
outstanding-nonexistent-requests-p)
+                    (cl-dotimes (i hyperdrive-queue-size)
                       ;; Send the maximum number of simultaneous requests.
                       (cl-decf (hyperdrive-entry-version entry))
                       ;; (message "ENTRY0: %s %s %s %s" 
(hyperdrive-entry-version entry) (hyperdrive-entry-exists-p entry) limit i)
@@ -854,7 +855,7 @@ with no arguments."
                                    (> limit i))
                         ;; Stop at the beginning of the history, at a known
                         ;; existent/nonexistent entry, or at the limit.
-                        (cl-return))
+                        (cl-return (setf finishedp t)))
                       ;; (message "ENTRY1: %s %s" (hyperdrive-entry-version 
entry) (hyperdrive-entry-exists-p entry))
 
                       (hyperdrive-fill (hyperdrive-copy-tree entry t)

Reply via email to