[racket] Prevent racket From Closing

From: Greg Hendershott (greghendershott at gmail.com)
Date: Sun Nov 11 22:55:05 EST 2012

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 <nathanpc at 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
>

Posted on the users mailing list.