;; Condition-Locks (define-record-type :condition-lock (really-make-condition-lock lock condition) condition-lock? (lock condition-lock-lock) (condition condition-lock-condition)) (define (make-condition-lock lock) (let ((condition (make-lock))) (obtain-lock condition) (really-make-condition-lock lock condition))) (define (wait-condition-lock condition-lock) (release-lock (condition-lock-lock condition-lock)) (obtain-lock (condition-lock-condition condition-lock)) (obtain-lock (condition-lock-lock condition-lock))) (define (signal-condition-lock condition-lock) (release-lock (condition-lock-condition condition-lock)))