;;;; synch-params.scm ;;;; Kon Lovett, Dec '18 ;; Issues ;; ;; - syntax checking is minimal so expansion errors are cryptic ;; ;; - dynamic-wind, ... (module synch-params (;export current-synch-exit-condition current-synch-raise synch-raise-warning current-synch-abandon?) (import scheme) (import (chicken base)) (import (chicken condition)) ;;; Parameters (define (synch-raise-warning x) (warning 'synch-raise x) #;(warning 'synch-raise (if (condition? x) (condition->list x) x))) (define (warn-synch-raise x) (if (procedure? x) x (begin (warning 'current-synch-raise "bad argument type - not a procedure" x) (current-synch-raise) ) ) ) (define (warn-synch-abandon? x) (if (boolean? x) x (begin (warning 'current-synch-abandon? "bad argument type - not a boolean" x) (current-synch-abandon?) ) ) ) (define current-synch-raise (make-parameter synch-raise-warning warn-synch-raise)) (define current-synch-abandon? (make-parameter #f warn-synch-abandon?)) (define current-synch-exit-condition (make-parameter 'synch-exit)) ) ;module synch-params