SBCL にも並列処理の流れ
SBCL の 1.0.29.31 に "Lock-free thread safe queue" が追加された。とてもライブラリ的なものなに処理系に含まれるなんて、並列処理の流れなんだろうな。メッセージパッシングのためのメールボックスの下地なんだろう。いまどきの欲しい機能ではある。
いまのところ queue なので要素の取り出しは dequeue しかない。残念ながら Erlang のパターンマッチングによる選択的な受信は実現できなさそう。
(require :sb-queue)
(defvar *queue* (sb-queue:make-queue))
(sb-queue:enqueue 'foo *queue*)
(sb-queue:enqueue 'bar *queue*)
(sb-queue:dequeue *queue*) ; => FOO, T
(sb-queue:dequeue *queue*) ; => BAR, T
0 件のコメント:
コメントを投稿