diff --git a/lisp/gateway-tui-main.lisp b/lisp/gateway-tui-main.lisp index 117ff03..2ab33a4 100644 --- a/lisp/gateway-tui-main.lisp +++ b/lisp/gateway-tui-main.lisp @@ -176,23 +176,25 @@ (let* ((hdr (make-string 6)) (n 0)) (loop while (< n 6) do (let ((ch (read-char s nil))) - (unless ch (return-from recv-daemon nil)) - (setf (char hdr n) ch) (incf n))) + (unless ch (return-from recv-daemon nil)) + (setf (char hdr n) ch) (incf n))) (let* ((len (parse-integer hdr :radix 16 :junk-allowed t)) (buf (make-string (or len 0)))) (when (and len (> len 0)) (loop for i from 0 below len do (let ((ch (read-char s nil))) - (unless ch (return-from recv-daemon nil)) - (setf (char buf i) ch))) + (unless ch (return-from recv-daemon nil)) + (setf (char buf i) ch))) (let ((*read-eval* nil)) (read-from-string buf))))) - (error (c) (log-message "TUI-RECV: ~a" c) nil))) + (error () nil))) (defun reader-loop (s) (loop while (and (st :running) (open-stream-p s)) do (let ((msg (recv-daemon s))) - (when msg (queue-event (list :type :daemon :payload msg)))))) + (if msg + (queue-event (list :type :daemon :payload msg)) + (sleep 0.5))))) (defun connect-daemon (&optional (host "127.0.0.1") (port 9105)) (handler-case diff --git a/org/gateway-tui-main.org b/org/gateway-tui-main.org index 51a3c5a..8e722be 100644 --- a/org/gateway-tui-main.org +++ b/org/gateway-tui-main.org @@ -207,23 +207,25 @@ Event handlers + daemon I/O + main loop. (let* ((hdr (make-string 6)) (n 0)) (loop while (< n 6) do (let ((ch (read-char s nil))) - (unless ch (return-from recv-daemon nil)) - (setf (char hdr n) ch) (incf n))) + (unless ch (return-from recv-daemon nil)) + (setf (char hdr n) ch) (incf n))) (let* ((len (parse-integer hdr :radix 16 :junk-allowed t)) (buf (make-string (or len 0)))) (when (and len (> len 0)) (loop for i from 0 below len do (let ((ch (read-char s nil))) - (unless ch (return-from recv-daemon nil)) - (setf (char buf i) ch))) + (unless ch (return-from recv-daemon nil)) + (setf (char buf i) ch))) (let ((*read-eval* nil)) (read-from-string buf))))) - (error (c) (log-message "TUI-RECV: ~a" c) nil))) + (error () nil))) (defun reader-loop (s) (loop while (and (st :running) (open-stream-p s)) do (let ((msg (recv-daemon s))) - (when msg (queue-event (list :type :daemon :payload msg)))))) + (if msg + (queue-event (list :type :daemon :payload msg)) + (sleep 0.5))))) #+end_src ** Connection