[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/detached 8b224c78b8 1/5: Speed up initialization of ses
From: |
ELPA Syncer |
Subject: |
[elpa] externals/detached 8b224c78b8 1/5: Speed up initialization of sessions |
Date: |
Fri, 23 Sep 2022 05:57:29 -0400 (EDT) |
branch: externals/detached
commit 8b224c78b8ef6cce02c06af1f7a3e7e23dbf2ccd
Author: Niklas Eklund <niklas.eklund@posteo.net>
Commit: Niklas Eklund <niklas.eklund@posteo.net>
Speed up initialization of sessions
Change detached--initialize-session to not update the database each
time its called. When the user has many sessions this creates a lot of
overhead.
The new approach is instead to add a call to
detached--db-update-sessions after all the individual sessions has
been initialized which should then only be called once per session
directory initialization.
---
detached.el | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/detached.el b/detached.el
index 0f3bcca887..82c64d7195 100644
--- a/detached.el
+++ b/detached.el
@@ -738,7 +738,8 @@ Optionally SUPPRESS-OUTPUT."
(detached--update-detached-emacsen)
(thread-last (detached--db-get-sessions)
(seq-filter #'detached--session-accessible-p)
- (seq-do #'detached--initialize-session)))))
+ (seq-do #'detached--initialize-session))
+ (detached--db-update-sessions))))
(defun detached-valid-session (session)
"Ensure that SESSION is valid.
@@ -801,9 +802,11 @@ This function uses the `notifications' library."
(defun detached-get-sessions ()
"Return as initialized sessions as possible."
;; Try to initialize unknown sessions
- (thread-last (detached--uninitialized-sessions)
- (seq-filter #'detached--session-accessible-p)
- (seq-do #'detached--initialize-session))
+ (when-let ((initialized-sessions
+ (thread-last (detached--uninitialized-sessions)
+ (seq-filter #'detached--session-accessible-p)
+ (seq-do #'detached--initialize-session))))
+ (detached--db-update-sessions))
(detached--db-get-sessions))
(defun detached-shell-command-attach-session (session)
@@ -1294,6 +1297,7 @@ Optionally make the path LOCAL to host."
(if (detached--uninitialized-session-p session)
(progn
(detached--initialize-session session)
+ (detached--db-update-sessions)
(detached--db-get-session (detached--session-id session)))
session))
@@ -1485,11 +1489,11 @@ session and trigger a state transition."
(if (detached--active-session-p session)
(if (detached--state-transition-p session)
(detached--session-state-transition-update session)
- (detached--db-update-entry session t)
+ (detached--db-update-entry session)
(detached--watch-session-directory (detached--session-directory
session)))
(if (detached--session-missing-p session)
(detached--db-remove-entry session)
- (detached--db-update-entry session t))))
+ (detached--db-update-entry session))))
(defun detached--uninitialized-sessions ()
"Return a list of uninitialized sessions."
@@ -1519,7 +1523,8 @@ If event is cased by an update to the `detached'
database, re-initialize
(unless (gethash (detached--session-id session)
detached--hashed-sessions)
(if (not (detached--session-accessible-p session))
(puthash (detached--session-id session) 'uninitialized
detached--hashed-sessions)
- (detached--initialize-session session))))
+ (detached--initialize-session session)
+ (detached--db-update-sessions))))
(detached--db-get-sessions)))))
(defun detached--annotation-widths (sessions annotation-format)