aboutsummaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-02-12 01:15:51 +0100
committerLudovic Courtès <ludo@gnu.org>2023-02-12 01:48:53 +0100
commita68229b9a0f450db622511adfe00ff7307d745d3 (patch)
tree69bd89acde4a3f4ca1cbefc3c639ceeb5430da5d /guix
parent89c5cb4078f52f103e6221978a2ea75e0c474769 (diff)
downloadguix-a68229b9a0f450db622511adfe00ff7307d745d3.tar
guix-a68229b9a0f450db622511adfe00ff7307d745d3.tar.gz
syscalls: 'with-file-lock' removes lock file upon exit.
Fixes <https://issues.guix.gnu.org/57501>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/build/syscalls.scm (call-with-file-lock) (call-with-file-lock/no-wait): Add call to 'delete-file' in unwind handler.
Diffstat (limited to 'guix')
-rw-r--r--guix/build/syscalls.scm8
1 files changed, 5 insertions, 3 deletions
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 0358960ff5..df9b9f6ac7 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -1400,7 +1400,8 @@ exception if it's already taken."
thunk
(lambda ()
(when port
- (unlock-file port))))))
+ (unlock-file port)
+ (delete-file file))))))
(define (call-with-file-lock/no-wait file thunk handler)
(let ((port #f))
@@ -1428,7 +1429,8 @@ exception if it's already taken."
thunk
(lambda ()
(when port
- (unlock-file port))))))
+ (unlock-file port)
+ (delete-file file))))))
(define-syntax-rule (with-file-lock file exp ...)
"Wait to acquire a lock on FILE and evaluate EXP in that context."