racket/collects/web-server/dispatchers/dispatch-sequencer.ss
2008-08-25 19:57:34 +00:00

15 lines
493 B
Scheme

#lang scheme
(require "dispatch.ss")
(provide/contract
[interface-version dispatcher-interface-version/c]
[make (() () #:rest (listof dispatcher/c) . ->* . dispatcher/c)])
(define interface-version 'v1)
(define ((make . dispatchers) conn req)
(let loop ([dispatchers dispatchers])
(if (empty? dispatchers)
(next-dispatcher)
(with-handlers ([exn:dispatcher?
(lambda (e) (loop (rest dispatchers)))])
((first dispatchers) conn req)))))