<div dir="ltr">Hi,<div><br></div><div>My application is not a webserver but needs to run a webserver for part but not all of its lifetime. Particularly, there's a part that does some complex computation and I want a webserver to expose its internal state/progress through HTTP.</div><div><br></div><div>It seems that the typical and expected way to use a webserver is to designate the entire app itself as a webserver, so that functions like the following are basically infinite loops that serve HTTP:</div><div><br></div><div>Web.Scotty.scotty: <a href="http://hackage.haskell.org/package/scotty-0.11.2/docs/Web-Scotty.html#v:scotty">http://hackage.haskell.org/package/scotty-0.11.2/docs/Web-Scotty.html#v:scotty</a><br></div><div><br></div><div>Network.Wai.Handler.Warp.run: <a href="http://hackage.haskell.org/package/warp-3.2.22/docs/Network-Wai-Handler-Warp.html#v:run">http://hackage.haskell.org/package/warp-3.2.22/docs/Network-Wai-Handler-Warp.html#v:run</a><br></div><div><br></div><div>Can I run a webserver with explicit control of its lifetime? Particularly, I want to be able to kill it without killing the app or explicitly serve one request at a time. I'm not restricted to scotty or warp.</div><div><br></div><div>Josh</div></div>