branch: externals/xelb
commit 81c699fbc8e34ac81c2ba9819ae7592cbd2f8d78
Author: Chris Feng <chris.w.f...@gmail.com>
Commit: Chris Feng <chris.w.f...@gmail.com>

    Protect process-send-string
    
    * xcb.el (xcb:flush): protect process-send-string since input might also 
come
      when calling it. Courtesy of @pipcet.
---
 xcb.el |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/xcb.el b/xcb.el
index 88ff1fb..029b2cf 100644
--- a/xcb.el
+++ b/xcb.el
@@ -356,8 +356,10 @@ classes of EVENT (since they have the same event number)."
   (let ((cache (slot-value obj 'request-cache)))
     (when (< 0 (length cache))
       (setf (slot-value obj 'request-cache) []) ;should be cleared ASAP
+      (cl-incf (slot-value obj 'event-lock))
       (process-send-string (slot-value obj 'process)
-                           (apply #'unibyte-string (append cache nil))))))
+                           (apply #'unibyte-string (append cache nil)))
+      (cl-decf (slot-value obj 'event-lock)))))
 
 (cl-defmethod xcb:get-extension-data ((obj xcb:connection) namespace)
   "Fetch the extension data from X server (block until data is retrieved)."

Reply via email to