diff --git a/keystore.rkt b/keystore.rkt index e0af688..7df9813 100644 --- a/keystore.rkt +++ b/keystore.rkt @@ -25,13 +25,13 @@ ks-begin-transaction ks-end-transaction ks-abort-transaction + ks-with-lock ) (define (any? a) #t) (define-struct keystore (file path dbh lock-sem (in-lock #:mutable) (entered #:mutable)) - #:transparent ) (define keystore*? keystore?) @@ -62,7 +62,7 @@ (λ () (cond ((eq? (keystore-in-lock ksh) (current-thread)) - (set-keystore-entered! ksh (+ keystore-entered ksh) 1)) + (set-keystore-entered! ksh (+ (keystore-entered ksh) 1))) (else (semaphore-wait (keystore-lock-sem ksh)) (set-keystore-entered! ksh 1) @@ -70,7 +70,7 @@ (set-keystore-in-lock! ksh (current-thread))) proc (λ () - (set-keystore-entered! (- (keystore-entered ksh) 1)) + (set-keystore-entered! ksh (- (keystore-entered ksh) 1)) (when (= (keystore-entered ksh) 0) (set-keystore-in-lock! ksh #f) (semaphore-post (keystore-lock-sem ksh))))