mirror of
git://git.savannah.gnu.org/guix/guix-cuirass.git
synced 2023-12-14 06:03:04 +01:00
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.
This commit is contained in:
parent
5f77c39f32
commit
e1c21224ae
|
@ -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)))
|
||||
|
|
|
@ -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."
|
||||
|
|
Loading…
Reference in a new issue