2

アプリケーションでイベントを処理するためのスクリプト言語として lua を使用しています。また、ユーザーが短いハンドラーを作成するように制限したくありません。たとえば、あるハンドラーが無限ループを実行するようにしたい場合、別のハンドラーが最初のハンドラーを中断する可能性があります。 1。明らかに、lua はそのような動作を直接サポートしていないため、回避策を探しています。

まず、エンジンの改造は避けたい。状態がクォータに達したときに解放されるデバッグ フックを設定することは可能ですか? ドキュメントから判断すると、まったく難しいことではありませんが、これに注意点があるかどうかはわかりません。

lua_close次に、実際のマルチスレッドと同じようにスレッドを終了できますか?

4

1 に答える 1

1

私は過去に似たようなことをしたことがあります。別々の Lua 状態でマルチスレッド化することは完全に可能です。luaL_lock() と luaL_unlock() (および関連するセットアップ/クリーンアップ) を必ず確認してください。このセットアップが必要になることは間違いありません (単純なミューテックスでうまくいくはずです)。

その後、ハンドラー用のロック/待機/割り込み API を作成するのはかなり簡単なことです。

于 2013-10-03T11:57:27.313 に答える