;; Lock-Conditions (define-record-type :lock-condition (really-make-lock-condition lock cond-lock) lock-condition? (lock lock-condition-lock) (cond-lock lock-condition-cond-lock)) (define (make-lock-condition lock) (let ((cond-lock (make-lock))) (obtain-lock cond-lock) (really-make-lock-condition lock cond-lock))) (define (wait-lock-condition lock-cond) (release-lock (lock-condition-lock lock-cond)) (obtain-lock (lock-condition-cond-lock lock-cond)) (obtain-lock (lock-condition-lock lock-cond))) (define (signal-lock-condition lock-cond) (release-lock (lock-condition-cond-lock lock-cond)))