タイトル考えるのって面倒だよね

タイトルと内容は一切関係ありません、念のため。
(他の記事は最低限、人が見るかもしれないと意識して書いた物だけど
今回はそんなこと関係無しの記事なので、という意味も含む)

luaとマイクロスレッドの噛み合せについて
lua内のマイクロスレッドの構造を覗いてみたけど複雑怪奇、というより上層から最下層まで処理が散在しているためいまいち理解できず。

とりあえず分かったのが、スレッドごとにエントリーポイントと思わしき部分を分けているらしいこと。
で、単純に退避後復帰みたいな安易な処理ではなく、もっと色々やっているらしいこと。
ぼんやりとだけど、C言語中から抜けられない理由も把握。

で、結論として今の構造じゃ両立は無理。
Luaのマイクロスレッドを使い、C言語側のAPIからLuaの機能を一切使わずyieldも呼ばない形にすることで一応実現可能ではあるが、
その場合はAPIの大部分を書き直し、もしくはLua上に移植しないといけなくなる。

マイクロスレッドは大して優先度の高い機能ではないのでスルーするべきだとは思うのだが
開発初期からずっと構想を練っていただけに、ここまできて捨てたくはないというのが本音。
それに上記方法で実装するとした場合、後になればなるほど大変でもある。

さて、変更が必要なAPIと変更するとした場合の作業量ざっと見積もってきますかね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です