diff options
Diffstat (limited to 'nar-herder/cached-compression.scm')
-rw-r--r-- | nar-herder/cached-compression.scm | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/nar-herder/cached-compression.scm b/nar-herder/cached-compression.scm index cd334af..91f7291 100644 --- a/nar-herder/cached-compression.scm +++ b/nar-herder/cached-compression.scm @@ -184,23 +184,24 @@ (match (database-fold-cached-narinfo-files database - (match-lambda* - ((details (finished? bytes result)) - (if finished? - (list finished? bytes result) - (if (eq? (assq-ref details 'compression) - compression) - (let ((new-bytes - (+ bytes - (assq-ref details 'size)))) - (cons - ;; finished if enough bytes are going - ;; to be removed - (> new-bytes bytes-to-remove) - (list new-bytes (cons details result)))) - (list #f bytes result))))) - '(#f 0 ())) - ((#t bytes-for-removal files-to-remove-details) + (lambda (details result) + (match result + (#(finished? bytes files-to-remove) + (if finished? + result + (if (eq? (assq-ref details 'compression) + compression) + (let ((new-bytes + (+ bytes + (assq-ref details 'size)))) + ;; finished if enough bytes are going + ;; to be removed + (vector (>= new-bytes bytes-to-remove) + new-bytes + (cons details files-to-remove))) + result))))) + #(#f 0 ())) + (#(#t bytes-for-removal files-to-remove-details) (log-msg 'DEBUG "removing " (length files-to-remove-details) " " compression " compressed nars from the cache") |