emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/crdt a7fc622 06/10: Don't perform CRDT client clean-up


From: ELPA Syncer
Subject: [elpa] externals/crdt a7fc622 06/10: Don't perform CRDT client clean-up for non-clients
Date: Fri, 17 Sep 2021 14:57:11 -0400 (EDT)

branch: externals/crdt
commit a7fc622923b79c40d8f056feb0f412aa5acbdba9
Author: Qiantan Hong <qhong@mit.edu>
Commit: Qiantan Hong <qhong@mit.edu>

    Don't perform CRDT client clean-up for non-clients
---
 crdt.el | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/crdt.el b/crdt.el
index 0e15150..4aeaafe 100644
--- a/crdt.el
+++ b/crdt.el
@@ -1667,14 +1667,15 @@ Handle received STRING from PROCESS."
       ;; generate a clear cursor message and a clear contact message
       (let* ((client-id (process-get client 'client-id))
              (clear-contact-message `(contact ,client-id nil)))
-        (let ((crdt--process client))
-          (crdt-process-message-1 clear-contact-message))
-        (maphash
-         (lambda (k _)
-           (let ((crdt--process client))
-             (crdt-process-message-1 `(cursor ,k ,client-id 1 nil 1 nil))))
-         (crdt--session-buffer-table crdt--session))
-        (crdt--refresh-users-maybe))
+        (when client-id ; we only do stuff if actually a CRDT client 
disconnect, not some spider/scanner etc
+          (let ((crdt--process client))
+            (crdt-process-message-1 clear-contact-message))
+          (maphash
+           (lambda (k _)
+             (let ((crdt--process client))
+               (crdt-process-message-1 `(cursor ,k ,client-id 1 nil 1 nil))))
+           (crdt--session-buffer-table crdt--session))
+          (crdt--refresh-users-maybe)))
       (when (process-buffer client) (kill-buffer (process-buffer client))))))
 
 (defun crdt--client-process-sentinel (process _message)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]