Skip to content
Snippets Groups Projects
Unverified Commit e1c21224 authored by Mathieu Othacehe's avatar Mathieu Othacehe
Browse files

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.
parent 5f77c39f
No related branches found
No related tags found
No related merge requests found
......@@ -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."
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment