+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
: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
(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))))