guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: remote: Use an EINTR safe message receive procedu


From: Mathieu Othacehe
Subject: branch master updated: remote: Use an EINTR safe message receive procedure.
Date: Fri, 26 Feb 2021 03:44:35 -0500

This is an automated email from the git hooks/post-receive script.

mothacehe pushed a commit to branch master
in repository guix-cuirass.

The following commit(s) were added to refs/heads/master by this push:
     new e1c2122  remote: Use an EINTR safe message receive procedure.
e1c2122 is described below

commit e1c21224aef62f120f50b0e2bef1c97dbd1c4b8a
Author: Mathieu Othacehe <othacehe@gnu.org>
AuthorDate: Fri Feb 26 09:43:08 2021 +0100

    remote: Use an EINTR safe message receive procedure.
    
    * src/cuirass/remote.scm (zmq-message-receive*): New procedure.
    * src/cuirass/remote-server.scm (start-fetch-worker, zmq-start-proxy): Use 
it.
---
 src/cuirass/remote-server.scm | 4 ++--
 src/cuirass/remote.scm        | 4 ++++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/cuirass/remote-server.scm b/src/cuirass/remote-server.scm
index ead0695..b82a292 100644
--- a/src/cuirass/remote-server.scm
+++ b/src/cuirass/remote-server.scm
@@ -325,7 +325,7 @@ socket."
      (set-thread-name name)
      (let ((socket (zmq-fetch-worker-socket)))
        (let loop ()
-         (match (zmq-message-receive socket)
+         (match (zmq-message-receive* socket)
            ((message)
             (run-fetch (bv->string
                         (zmq-message-content message)))))
@@ -372,7 +372,7 @@ frontend to the workers connected through the TCP backend."
       (let* ((items (zmq-poll* poll-items 1000))
              (start-time (current-time)))
         (when (zmq-socket-ready? items build-socket)
-          (match (zmq-message-receive build-socket)
+          (match (zmq-message-receive* build-socket)
             ((worker empty rest)
              (let* ((worker-name (bytevector-copy
                                   (zmq-message-content worker)))
diff --git a/src/cuirass/remote.scm b/src/cuirass/remote.scm
index 62f16ca..7a59a3d 100644
--- a/src/cuirass/remote.scm
+++ b/src/cuirass/remote.scm
@@ -69,6 +69,7 @@
             send-log
 
             zmq-poll*
+            zmq-message-receive*
             zmq-socket-ready?
             zmq-empty-delimiter
 
@@ -400,6 +401,9 @@ retries a call to PROC."
   ;; Return a variant of ZMQ-POLL that catches EINTR errors.
   (EINTR-safe zmq-poll))
 
+(define zmq-message-receive*
+  (EINTR-safe zmq-message-receive))
+
 (define (zmq-socket-ready? items socket)
   "Return #t if the given SOCKET is part of ITEMS, a list returned by a
 'zmq-poll' call, return #f otherwise."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]