lisp图像中的基于hunchentoot的应用程序(来自buildapp)会立即返回

时间:2014-09-11 21:37:06

标签: multithreading lisp hunchentoot

所以我有一个使用restas的应用程序,基于hunchentoot。

在某些时候,我有以下功能:

(defun main (args)
  (declare (ignore args))
  (set-config)
  (restas:start '#:spa :port 8080))

(set-config)设置了一些与数据库相关的值。

无论如何,我以下列方式使用buildapp

buildapp --output dist/spa --load-system spa --asdf-tree ~/quicklisp/ --entry spa::main --compress-core

完美无缺。 (set-config)函数需要存在config.json文件,当文件不存在时它确实不起作用,因此我确信应用程序已正确编译。

但是,当我运行生成的二进制文件时,应用程序会立即返回。这意味着HTTP服务器不会熬夜。

猜测它与hunchentoot产生一个新线程的事实有关,但它应该不会停止该过程,是吗?

此外,我不想使用线程,即我希望每个请求都是一个单独的线程。

所以...我不确定它为什么会立即返回。为什么?以及如何解决它?

1 个答案:

答案 0 :(得分:2)

我猜你必须进入一个主循环来保持程序运行。 http://www.xach.com/lisp/buildapp/上的示例使用特定于SBCL的(sb-impl::toplevel-repl nil)