Shammer's Philosophy

My private adversaria

SBCL で thread を使ってみたが引数は使用できず

sb-thread:make-thread 'Function という形で実行できるようだ。

* (defun hello () (format t "Hello~%"))

HELLO
* (hello)
Hello
NIL
* (sb-thread:make-thread 'hello)
Hello
#<SB-THREAD:THREAD FINISHED values: NIL {1002A424E3}>
*

引数なしは簡単に実行できた。でも、引数を使用するとうまくいかない。

* (defun hello (message) (format t "~A~%" message))
STYLE-WARNING: redefining COMMON-LISP-USER::HELLO in DEFUN

HELLO
* (hello "Hello")
Hello
NIL
* (sb-thread:make-thread 'hello "Hello")

debugger invoked on a SB-INT:SIMPLE-PROGRAM-ERROR in thread
#<THREAD "main thread" RUNNING {1002978D03}>:
  odd number of &KEY arguments

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

なんかつい最近追加されたようだ。
Bug #727384 “wanted: make-thread should accept :arguments to pas...” : Bugs : SBCL