[racket] send/suspend outside #lang web-server
Can I use send/suspend outside the #lang web-server module ?
For example , the two modules below don't work , I get something like :
"Attempt to capture a continuation from within an unsafe context: ...."
For statefull servlets this type of example works fine.
"Module test.rkt"
#lang web-server
(require web-server/servlet-env)
(require "something.rkt")
(define (start request)
(show request))
(define (show request)
(define (gen-resp make-url)
(response/xexpr
`(html (body (h1 "testing")
(a ((href ,(make-url do-something))) "do something")))))
(define (do-something request)
(define something (get-something))
(cond
[(request? something) (error 'no-good)]
[else (error 'ok "~a" something)]))
(send/suspend/dispatch gen-resp))
(serve/servlet start #:stateless? #t )
"Module something.rkt"
#lang racket
(require web-server/lang/web)
(require web-server/http/xexpr)
(provide get-something)
(define (get-something)
(define req
(send/suspend
(lambda (make-url)
(response/xexpr
`(html (body (h1 "something")
(a ((href ,make-url)) "try something")))))))
(printf "why are we not here\n")
'something)