X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=lsp-dbus%2Flsp-dbus-connection.lsp;h=f09381bf345f48a4a004a38b3fef840156f48895;hb=0359cc142e9003e886bae84b55a212bf69e24970;hp=3ac9b068a6db20a04775725d54ec9d0b835be6d0;hpb=b803427b65b26ec297322de115e8dcbae55b033e;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)