branch: main
commit ce74a1f751f8f63d613125e0a8b377c70811286c
Author: Ludovic Courtès <[email protected]>
AuthorDate: Fri Mar 21 17:08:25 2025 +0100

    base: ‘spawn-remote-builder’ takes a socket.
    
    * src/cuirass/base.scm (spawn-remote-builder): Make ‘socket’ a
    parameter.
    * src/cuirass/scripts/register.scm (cuirass-register): Update
    accordingly.
    * tests/remote.scm (start-notification-server): Adjust
    ‘spawn-remote-builder’ call accordingly.
---
 src/cuirass/base.scm             | 9 ++++-----
 src/cuirass/scripts/register.scm | 5 ++++-
 tests/remote.scm                 | 9 +++++++--
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index 51d361c..eeac8ef 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -527,14 +527,13 @@ events to the event log service using EVENT-LOG, a Fibers 
channel."
                       `(new-event (derivation-built ,derivation ,status)))))
       (loop))))
 
-(define (spawn-remote-builder event-log)
+(define (spawn-remote-builder socket event-log)
   "Spawn a build actor that performs builds using \"remote workers\".  Return
-once ready to listen for incoming connections from 'cuirass remote-server'."
+once ready to listen for incoming connections from 'cuirass remote-server' on
+SOCKET."
   (log-info "listening for 'cuirass remote-server' notifications on '~a'"
             (%remote-server-socket-file-name))
-  (let ((channel (make-channel))
-        (socket (open-unix-listening-socket
-                 (%remote-server-socket-file-name))))
+  (let ((channel (make-channel)))
     (spawn-fiber (remote-builder channel socket event-log))
     channel))
 
diff --git a/src/cuirass/scripts/register.scm b/src/cuirass/scripts/register.scm
index 38db9a5..836dfe4 100644
--- a/src/cuirass/scripts/register.scm
+++ b/src/cuirass/scripts/register.scm
@@ -273,7 +273,10 @@
                    (let* ((exit-channel (make-channel))
                           (event-log-service (spawn-event-log-service))
                           (builder (if (option-ref opts 'build-remote #f)
-                                       (spawn-remote-builder event-log-service)
+                                       (spawn-remote-builder
+                                        (open-unix-listening-socket
+                                         (%remote-server-socket-file-name))
+                                        event-log-service)
                                        (spawn-local-builder 
event-log-service)))
                           (evaluator (spawn-jobset-evaluator
                                       #:max-parallel-evaluations
diff --git a/tests/remote.scm b/tests/remote.scm
index 864579c..db88e0d 100644
--- a/tests/remote.scm
+++ b/tests/remote.scm
@@ -106,13 +106,18 @@
                     (list "guile" "-c"
                           (object->string
                            '(begin
-                              (use-modules (cuirass base) (fibers))
+                              (use-modules (cuirass base)
+                                           (cuirass utils)
+                                           (fibers))
 
                               (setvbuf (current-output-port) 'none)
                               (setvbuf (current-error-port) 'none)
                               (run-fibers
                                (lambda ()
-                                 (spawn-remote-builder 
(spawn-event-log-service))
+                                 (spawn-remote-builder
+                                  (open-unix-listening-socket
+                                   (%remote-server-socket-file-name))
+                                  (spawn-event-log-service))
                                  (sleep 120))     ;wait
                                #:drain? #t)))))))
     ;; Wait until this process is accepting connections.

Reply via email to