aboutsummaryrefslogtreecommitdiff
path: root/module/hnh/util/atomic.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/hnh/util/atomic.scm')
-rw-r--r--module/hnh/util/atomic.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/module/hnh/util/atomic.scm b/module/hnh/util/atomic.scm
new file mode 100644
index 00000000..1deba2c1
--- /dev/null
+++ b/module/hnh/util/atomic.scm
@@ -0,0 +1,11 @@
+(define-module (hnh util atomic)
+ :use-module (srfi srfi-18)
+ :export (with-mutex))
+
+(define-syntax with-mutex
+ (syntax-rules ()
+ ((_ mutex body ...)
+ (dynamic-wind
+ (lambda () (mutex-lock! mutex))
+ (lambda () body ...)
+ (lambda () (mutex-unlock! mutex))))))