diff options
author | Christopher Baines <mail@cbaines.net> | 2020-11-30 18:40:46 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-11-30 18:40:46 +0000 |
commit | b906bb74810d106f96a6975050773c47d8c4a5dc (patch) | |
tree | cdc7dbf32fae9c788d1489fb3fde0c3446c7954e /guix-build-coordinator/utils.scm | |
parent | 928a7aff4fbd6397738ff1cb09704c5ab33636d9 (diff) | |
download | build-coordinator-b906bb74810d106f96a6975050773c47d8c4a5dc.tar build-coordinator-b906bb74810d106f96a6975050773c47d8c4a5dc.tar.gz |
Try to reduce errors when deleting substitute cache files
Diffstat (limited to 'guix-build-coordinator/utils.scm')
-rw-r--r-- | guix-build-coordinator/utils.scm | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm index 3767eef..259e293 100644 --- a/guix-build-coordinator/utils.scm +++ b/guix-build-coordinator/utils.scm @@ -301,16 +301,19 @@ upcoming chunk." (string-append %narinfo-cache-directory "/" directory "/" hash-part))) - (when (file-exists? cache-file) - (with-exception-handler - (lambda (exn) - (simple-format - (current-error-port) - "error: when deleting substitute cache file: ~A\n" - exn)) - (lambda () - (delete-file cache-file)) - #:unwind? #t)))) + ;; Use monitor to avoid multiple threads trying to delete + ;; the same file at the same time + (monitor + (when (file-exists? cache-file) + (with-exception-handler + (lambda (exn) + (simple-format + (current-error-port) + "error: when deleting substitute cache file: ~A\n" + exn)) + (lambda () + (delete-file cache-file)) + #:unwind? #t))))) (or directories '()))) (let ((narinfos |