branch: main
commit bd6e05cefdcded316e590df535a718bdf609ab3a
Author: Ludovic Courtès <[email protected]>
AuthorDate: Fri Mar 21 16:16:24 2025 +0100

    utils: Add ‘non-blocking-port’.
    
    * src/cuirass/store.scm (non-blocking-port): Move to…
    * src/cuirass/utils.scm (non-blocking-port): … here.  New procedure.
---
 src/cuirass/store.scm | 11 ++---------
 src/cuirass/utils.scm |  8 ++++++++
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/cuirass/store.scm b/src/cuirass/store.scm
index 86e0fdf..a5a770e 100644
--- a/src/cuirass/store.scm
+++ b/src/cuirass/store.scm
@@ -24,6 +24,7 @@
   #:use-module ((guix config) #:select (%state-directory))
   #:autoload   (guix serialization) (nar-error? nar-error-file)
   #:autoload   (cuirass logging) (log-info log-warning log-error)
+  #:autoload   (cuirass utils) (non-blocking-port)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-34)
   #:use-module (ice-9 match)
@@ -31,8 +32,7 @@
   #:use-module (ice-9 threads)
   #:use-module ((fibers) #:select (sleep))
   #:autoload   (fibers channels) (make-channel put-message get-message)
-  #:export (non-blocking-port
-            with-store/non-blocking
+  #:export (with-store/non-blocking
             process-build-log
             ensure-path/retry
             build-derivations&
@@ -100,13 +100,6 @@ any."
   "Return true if PORT is blocking--i.e., lacking O_NONBLOCK."
   (zero? (logand O_NONBLOCK (fcntl port F_GETFL))))
 
-(define (non-blocking-port port)
-  "Make PORT non-blocking and return it."
-  (let ((flags (fcntl port F_GETFL)))
-    (when (zero? (logand O_NONBLOCK flags))
-      (fcntl port F_SETFL (logior O_NONBLOCK flags)))
-    port))
-
 (define (ensure-non-blocking-store-connection store)
   "Mark the file descriptor that backs STORE, a <store-connection>, as
 O_NONBLOCK."
diff --git a/src/cuirass/utils.scm b/src/cuirass/utils.scm
index b06f451..204988c 100644
--- a/src/cuirass/utils.scm
+++ b/src/cuirass/utils.scm
@@ -59,6 +59,7 @@
             with-timing-check
             gather-user-privileges
             open-unix-listening-socket
+            non-blocking-port
 
             atomic-box-fetch-and-increment!
             atomic-box-fetch-and-decrement!
@@ -334,6 +335,13 @@ its parent directory if needed and make it #o700."
     (listen sock 64)
     sock))
 
+(define (non-blocking-port port)
+  "Make PORT non-blocking and return it."
+  (let ((flags (fcntl port F_GETFL)))
+    (when (zero? (logand O_NONBLOCK flags))
+      (fcntl port F_SETFL (logior O_NONBLOCK flags)))
+    port))
+
 
 ;;;
 ;;; Atomic procedures.

Reply via email to