Hi Matthew, You can run serve/servlet in a separate thread and continue to interact with any functions you want:
(define server-t (thread (lambda () (serve/servlet ...)))) You could then use something like xrepl to start doing new stuff. There's nothing the Web server would need to do necessarily. However, if you wanted to change how the server was running, you might need to adjust some things. For instance, you could put the main request->response function in a box that you could change. You could kill the server-t thread and then create another one to restart the server with new parameters. Is that a useful sketch? Jay On Wed, Aug 27, 2014 at 1:33 PM, Matthew Butterick <[email protected]> wrote: > The main engine of my Pollen system is a project webserver that's started > from the command line, uses serve/servlet, and sends the usual status & error > messages to the terminal window. > > I was thinking it would be handy to be able to keep an input prompt in that > terminal window to be able to issue commands without stopping the server, > switching to another window, etc. > > Is there a straightforward approach to this in terms of program design, or > would it introduce annoying complications? > > My understanding of serve/servlet is that it can only do one thing, which is > listen & respond to TCP requests on a certain port. So for this REPL-ish > feature, there would have to be a separate listenener/response mechanism. Is > that something one would accomplish with threads? Or is there a better way? > (Or no way.) > > An approach I've seen with other web-development systems is to put an admin > panel in the browser (by injecting it into the HTML of the output web page). > But that's inherently hinky because it pollutes your output. > ____________________ > Racket Users list: > http://lists.racket-lang.org/users -- Jay McCarthy http://jeapostrophe.github.io "Wherefore, be not weary in well-doing, for ye are laying the foundation of a great work. And out of small things proceedeth that which is great." - D&C 64:33 ____________________ Racket Users list: http://lists.racket-lang.org/users

