Propagate dispatcher signal

svn: r12683
This commit is contained in:
Jay McCarthy 2008-12-02 22:29:19 +00:00
parent f11b46828c
commit da2fd6489d
2 changed files with 4 additions and 2 deletions

View File

@ -66,6 +66,7 @@
(define response
(with-handlers ([exn:fail:filesystem:exists?
(lambda (the-exn) (next-dispatcher))]
[exn:dispatcher? raise]
[(lambda (x) #t)
(lambda (the-exn) (responders-servlet-loading uri the-exn))])
(define the-servlet (url->servlet uri))
@ -73,7 +74,8 @@
[current-custodian (servlet-custodian the-servlet)]
[current-directory (servlet-directory the-servlet)]
[current-namespace (servlet-namespace the-servlet)])
(with-handlers ([(lambda (x) #t)
(with-handlers ([exn:dispatcher? raise]
[(lambda (x) #t)
(lambda (exn) (responders-servlet uri exn))])
(call-with-continuation-barrier
(lambda ()

View File

@ -368,7 +368,7 @@ a URL that refreshes the password file, servlet cache, etc.}
dispatcher/c]{
This dispatcher runs Scheme servlets, using @scheme[url->servlet] to resolve URLs to the underlying servlets.
If servlets have errors loading, then @scheme[responders-servlet-loading] is used. Other errors are handled with
@scheme[responders-servlet].
@scheme[responders-servlet]. If a servlet raises calls @scheme[next-dispatcher], then the signal is propagated by this dispatcher.
}
}