racket/collects/stepper/break.ss
2005-05-27 18:56:37 +00:00

25 lines
825 B
Scheme

(module break mzscheme
(require (lib "contract.ss"))
(provide current-breakpoint-handler)
(define (default-current-breakpoint-handler)
(error 'default-current-breakpoint-handler
"The current-breakpoint-handler parameter has not yet been set in this thread."))
(define current-breakpoint-handler
(make-parameter default-current-breakpoint-handler
(lambda (new-handler)
(if (and (procedure? new-handler)
(procedure-arity-includes? new-handler 0))
new-handler
(error 'current-breakpoint-handler "Bad value for current-breakpoint-handler: ~e" new-handler)))))
(provide/contract [break (-> any)])
(define (break)
((current-breakpoint-handler))))