> When I try to use do-not-return I get this error: bonsai.rkt:22:3: > do-not-return: unbound identifier in module
To use it, you would need to require the module that provides it: (require web-server/web-server) (Which I found by searching the docs for `do-not-return', and getting this: http://docs.racket-lang.org/web-server-internal/web-server.html#(def._((lib._web-server/web-server..rkt)._do-not-return)) ) > Then I tried read-line, which worked, but it blocks the console output so > I'll only see the things that my script is sending to the console after I > hit Enter and finish the program. Is there a asynchronous way of doing this? It sounds like you should use `do-not-return' as Jay recommended. If you don't want to require all of web-server to get it, the definition is simply this: (define (do-not-return) (semaphore-wait (make-semaphore 0))) On Mon, Nov 12, 2012 at 8:42 AM, Nathan Campos <natha...@dreamintech.net> wrote: > When I try to use do-not-return I get this error: bonsai.rkt:22:3: > do-not-return: unbound identifier in module > > Then I tried read-line, which worked, but it blocks the console output so > I'll only see the things that my script is sending to the console after I > hit Enter and finish the program. Is there a asynchronous way of doing this? > > > > On Mon, Nov 12, 2012 at 1:55 AM, Greg Hendershott > <greghendersh...@gmail.com> wrote: >> >> If I understand correctly you simply need your main Racket thread to >> wait, for example, after your main thread calls your `start-server': >> >> (start-server) >> (displayln "Server started. Press ENTER to quit.") >> (read-line) >> ;; End of your main RKT file >> >> >> On Sun, Nov 11, 2012 at 8:39 PM, Nathan Campos <natha...@dreamintech.net> >> wrote: >> > I'm having some fun with tcp-listen with Racket, here's the simple start >> > server function that I'm using: >> > >> > #lang racket >> > >> > (define start-server >> > (lambda ([port 8080]) >> > (current-custodian server-custodian) >> > ; Caps at 50 connections at the same time >> > (define listener (tcp-listen port 50 #t)) >> > (define (loop) >> > (accept-and-handle listener) >> > (loop)) >> > (define t (thread loop)) >> > (lambda () >> > (kill-thread t) >> > (tcp-close listener)) >> > (fprintf (current-output-port) "Server started listening at ~a" >> > port))) >> > >> > It was running great on DrRacket, but when I tried to run it under >> > racket >> > (the command-line executable) it shows the sever started message and >> > quits, >> > so the server doesn't keep running. Is there anyway to make racket wait >> > until it's process gets killed or the user types something? >> > >> > Best Regards, >> > Nathan Campos >> > >> > ____________________ >> > Racket Users list: >> > http://lists.racket-lang.org/users >> > > > > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users > ____________________ Racket Users list: http://lists.racket-lang.org/users