]> git.eshelyaron.com Git - emacs.git/commitdiff
registry.el (prune-factor): New initialization parameter defaulting to 0.1.
authorTeodor Zlatanov <tzz@lifelogs.com>
Fri, 13 May 2011 04:12:37 +0000 (04:12 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 13 May 2011 04:12:37 +0000 (04:12 +0000)
 (registry-prune-hard): Use it.
gnus-registry.el (gnus-registry-fixup-registry): Set prune-factor to 0.1 expicitly.

lisp/gnus/ChangeLog
lisp/gnus/gnus-registry.el
lisp/gnus/registry.el

index ceea1e0375fb7dafd63abafd75b2118e98c7388f..6f4bc302570ddb7c1191e5455f1ecebca5533fb0 100644 (file)
@@ -1,3 +1,12 @@
+2011-05-13  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * registry.el (prune-factor): New initialization parameter defaulting
+       to 0.1.
+       (registry-prune-hard): Use it.
+
+       * gnus-registry.el (gnus-registry-fixup-registry): Set prune-factor to
+       0.1 expicitly.
+
 2011-05-13  Glenn Morris  <rgm@gnu.org>
 
        * message.el (message-send-mail-with-sendmail): Assume sendmail-program
index 02e4ce7e2e65fee03375d9d265c0e06d5efa4948..25d84b11d4100b5a96e628c443ba411ba18bb872 100644 (file)
@@ -244,6 +244,8 @@ the Bit Bucket."
       (oset db :max-hard
             (or gnus-registry-max-entries
                 most-positive-fixnum))
+      (oset db :prune-factor
+            0.1)
       (oset db :max-soft
             (or gnus-registry-max-pruned-entries
                 most-positive-fixnum))
index b5cc3ec0e2ba6425856e7204e1794ad7206e9281..8e158f7ca0fa2c190a31a68f9a34b92fb7f46370 100644 (file)
              :type integer
              :custom integer
              :documentation "Prune as much as possible to get to this size.")
+   (prune-factor
+    :initarg :prune-factor
+    :initform 0.1
+    :type float
+    :custom float
+    :documentation "At the max-hard limit, prune size * this entries.")
    (tracked :initarg :tracked
             :initform nil
             :type t
@@ -357,11 +363,12 @@ Proposes only entries without the :precious keys."
 
   (defmethod registry-prune-hard-candidates ((db registry-db))
     "Collects pruning candidates from the registry-db object THIS.
-Proposes any entries over the max-hard limit minus 10."
+Proposes any entries over the max-hard limit minus size * prune-factor."
     (let* ((data (oref db :data))
-           ;; prune to 10 below the max-hard limit so we're not
-           ;; pruning all the time
-          (limit (- (oref db :max-hard) 10))
+           ;; prune to (size * prune-factor) below the max-hard limit so
+           ;; we're not pruning all the time
+          (limit (max 0 (- (oref db :max-hard)
+                            (* (registry-size db) (oref db :prune-factor)))))
           (candidates (loop for k being the hash-keys of data
                             collect k)))
       (list limit candidates))))