improve lock

This commit is contained in:
Simon Cruanes 2025-11-13 19:50:40 -05:00
parent a40ea8b41b
commit 794b263d36
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4

View file

@ -42,13 +42,13 @@ module Lock = struct
let create content : _ t = { mutex = Mutex.create (); content } let create content : _ t = { mutex = Mutex.create (); content }
let with_ (self : _ t) f = let[@inline never] with_ (self : _ t) f =
Mutex.lock self.mutex; Mutex.lock self.mutex;
try match f self.content with
let x = f self.content in | x ->
Mutex.unlock self.mutex; Mutex.unlock self.mutex;
x x
with e -> | exception e ->
Mutex.unlock self.mutex; Mutex.unlock self.mutex;
raise e raise e