There are two send/suspend functions in the Web server collection. The one from web-server/lang/web is the stateless one. This relies on the program transformation that #lang web-server implements, so it must be used inside modules that use that language.
The one from web-server/servlet/web is the stateful one. This is implemented purely with native continuations, so it can be used anywhere. Jay On Mon, Sep 5, 2011 at 12:44 AM, Veer <diggerr...@gmail.com> wrote: > 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) > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users > -- Jay McCarthy <j...@cs.byu.edu> Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay "The glory of God is Intelligence" - D&C 93 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users