X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=lsp-dbus%2Flsp-dbus-connection.lsp;h=f09381bf345f48a4a004a38b3fef840156f48895;hb=121167c737403e2f49231fd5704aae86850b5b38;hp=3ac9b068a6db20a04775725d54ec9d0b835be6d0;hpb=1898ef96b70cb93c53a84e6a7536d0a3bceb35d6;p=rrq%2Flsp-utils.git diff --git a/lsp-dbus/lsp-dbus-connection.lsp b/lsp-dbus/lsp-dbus-connection.lsp index 3ac9b06..f09381b 100644 --- a/lsp-dbus/lsp-dbus-connection.lsp +++ b/lsp-dbus/lsp-dbus-connection.lsp @@ -40,9 +40,13 @@ (define (read-message) (let ((BUFFER "") (RESULT "")) - (while (net-select (%socket) "r" 1000) - (net-receive (%socket) BUFFER 8192) - (extend RESULT BUFFER)) + (while (and RESULT (net-select (%socket) "r" 1000)) + (if (net-receive (%socket) BUFFER 8192) + (extend RESULT BUFFER) + (begin + (setf RESULT nil) + (die 1 "dbus socket closed")) + )) RESULT)) ;; (handshake MSG PAT)