<div dir="ltr"><br><div>You could also look at ekg for "inspiration" (at least for the "expose data via a URL" part): <a href="http://hackage.haskell.org/package/ekg">http://hackage.haskell.org/package/ekg</a></div><div><br></div><div>Doug</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jul 12, 2018 at 10:55 PM Lyndon Maydwell <<a href="mailto:maydwell@gmail.com">maydwell@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Yes that's what I had in mind.<div><br></div><div>You can do some fun things with Control.Concurrent.Chan as well if you need special sequencing, or limits on requests served or callbacks into the main thread etc.</div></div><div dir="ltr"><div><br><div><br></div><div> - Lyndon</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 13, 2018 at 12:32 PM ☂Josh Chia (謝任中) <<a href="mailto:joshchia@gmail.com" target="_blank">joshchia@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Do you mean something like calling the scotty function in a server thread and then killing the server thread when I want to stop serving? If proper cleanup happens when I kill the thread, this should work for me.</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 13, 2018 at 10:01 AM Lyndon Maydwell <<a href="mailto:maydwell@gmail.com" target="_blank">maydwell@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Not sure if I'm missing something, but is there any reason why you couldn't spin up the server in a thread then kill it when required?<div><br></div><div><br></div><div> - Lyndon</div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 13, 2018 at 11:51 AM ☂Josh Chia (謝任中) <<a href="mailto:joshchia@gmail.com" target="_blank">joshchia@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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" target="_blank">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" target="_blank">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>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>
</blockquote></div>
</blockquote></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>