2013/6/2 Nala Ginrut > If you just need to handle HTTP request or build webapp, I suggest you use > my web framework Artanis. It uses Guile inner sever based on thread. > Thanks, I'll have a look at it. Recently I need to deploy a Hacker News[1] like service. Paul Graham has released its source with Arc. PG has not release updated versions for several years, so I think I will need to maintain and fix bugs by myself, and I'd prefer to do such things in Guile instead of Racket. Currently I'll use Racket to run this service, and it would be great if it can be replaced by Guile eventually. [1] https://news.ycombinator.com/ > ÔÚ 2013-6-2 AM7:49£¬"Xin Wang" дµÀ£º > > >> >> >> 2013/5/31 Ludovic Court¨¨s >> >>> Xin Wang skribis: >>> >>> > In Guile, the equivalent of kill-thread is cancel-thread, and is there >>> any >>> > equivalent of break-thread? >>> > >>> > [1] http://docs.racket-lang.org/reference/breakhandler.html >>> >>> If I understand correctly, ¡°breaks¡± are similar to Guile¡¯s ¡°asyncs¡± >>> (info "(guile) Asyncs"). >>> >>> However, I don¡¯t understand what you¡¯re trying to achieve. Could you >>> give another example of the behavior you¡¯re after? >>> >>> >> I was reading source code of Arc language[1], and wondering if it is >> possible to port it to Guile. >> >> It define a function to handle HTTP request in srv.arc(L48): >> >> (def handle-request-1 (s) >> --- pruned --- >> (with (th1 nil th2 nil) >> (= th1 (thread >> (after (handle-request-thread i o ip) >> (close i o) >> (kill-thread th2)))) >> (= th2 (thread >> (sleep threadlife*) >> (unless (dead th1) >> (prn "srv thread took too long for " ip)) >> (break-thread th1) >> (force-close i o)))))))) >> >> It create two threads to handle a request, one do main stuff and anthor >> one wait to kill first one if it takes too much time. >> >> Although I'm not quite sure, I think one reason to use 'kill-thread' and >> 'break-thread' differently is to make sure that exception handler function >> is fully executed. ('after' is implemented by dynamic-wind). >> >> [1] http://ycombinator.com/arc/*arc3.1.tar* >> >> >>> Thanks, >>> Ludo¡¯. >>> >>> >>> >>