On 2023-10-19 22:29, Ludovic Courtès wrote: > Hi Carlo, > > Carlo Zancanaro skribis: > >> * gnu/home/services.scm (compute-on-first-login-script): Use open to >> atomically check whether a file exists and create it if not. > > Good catch! > > I made the following cosmetic changes (‘open-fdes’ is cheaper than > ‘open’) and applied it. > > Thanks! > > Ludo’. > > diff --git a/gnu/home/services.scm b/gnu/home/services.scm > index 7137925b30..651c068f79 100644 > --- a/gnu/home/services.scm > +++ b/gnu/home/services.scm > @@ -414,15 +414,15 @@ (define (compute-on-first-login-script _ gexps) > (use-modules (guix i18n) > (guix diagnostics)) > > - (define (claim-first-run file-name) > + (define (claim-first-run file) Very nice trick! Carol, Ludo, Thank you for the fix! > (catch #t > (lambda () > - ;; This incantation will raise an error if the file at > - ;; flag-file-path already exists, and will create it otherwise. > - (close (open file-name (logior O_CREAT O_EXCL))) > + ;; This incantation raises an error if FILE already exists, and > + ;; creates it otherwise. > + (close-fdes > + (open-fdes file (logior O_CREAT O_EXCL O_CLOEXEC))) > #t) > - (lambda _ > - #f))) > + (const #f))) > > #$%initialize-gettext > -- Best regards, Andrew Tropin