- 18 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 12:35:10.14 ID:yOlfPxWj.net]
- メシ前で言葉足らずだったすまぬ
何から何まで直接APIを生で渡してそのままstate切り替えずにマルチスレッドでGoって話じゃない lua内の変数の直接の共有はもちろんできないからグローバルでホストのユーザデータ持たせて そこに固定で配列の排他領域持つなりstd::deque<適当>でメッセージポンプなりしなきゃダメ で、何故WaitForMultipleObjectsかってーと、極端な話最初に実行し始めたluaのスレッドが 別スレッド用のスクリプトを起動してスレッドが動的に生成されて全部無限ループに陥ったりしたのを 止められるように〜とWin32でスレッドをabortしたりすると、実は無限ループじゃなかった時に 使ってたり待ってたりした資源次第でレアなLastErrorや例外になったりして異常なのか正常なのかわからない luaは俺の知る限り外部からのスレッドセーフな強制中断のメソッドは持ち合わせてないし google v8なんかも2〜3年位前?のI/Fががらりと変わった時に追加された中断メソッドで ようやく対応ってくらいだからluaにそれを求めるのは酷かも知れない だから自分で強制中断の手段をlua_sethookでも何でも使って準備しておくのが吉(異論は認める)
|

|