26 lines
760 B
Scheme
26 lines
760 B
Scheme
(module break mzscheme
|
|
|
|
(require mzlib/contract)
|
|
|
|
(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))))
|