2
0
Fork 0
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:
Mathieu Othacehe 2021-02-26 09:43:08 +01:00
parent 5f77c39f32
commit e1c21224ae
No known key found for this signature in database
GPG key ID: 8354763531769CA6
2 changed files with 6 additions and 2 deletions

View file

@ -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)))

View file

@ -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."