;; From sunterlib (define (with-lock* lock thunk) (dynamic-wind (lambda () (obtain-lock lock)) thunk (lambda () (release-lock lock)))) (define-syntax with-lock (syntax-rules () ((with-lock lock body ...) (with-lock* lock (lambda () body ...)))))