working snapshot
[rrq/lsp-utils.git] / lsp-dbus / lsp-dbus-connection.lsp
index 3ac9b068a6db20a04775725d54ec9d0b835be6d0..f09381bf345f48a4a004a38b3fef840156f48895 100644 (file)
 
 (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)