1

Lua スクリプトを実行しているどのスレッド (コルーチン) が lua_pushcclosure 呼び出しの起点にあるかを知る方法はありますか?

lua スレッドに関連するもの (遅延一時停止/再開、またはプライベート スレッド変数) を管理するには、コールバックに関与するスレッドを特定する必要があります。lua_gettop を使用して作成するときにスレッド インデックスを取得できることはわかっていますが、それを使用する方法が見つからないため、Lua スクリプトから lua_pushcclosure 呼び出しが発行されたときにスレッドを識別するのに役立ちます。

私の現在のシステムでは、ネストされたスクリプト呼び出しが許可されているため、スクリプトは他のスクリプトを実行できます (ネストされたスクリプト呼び出しごとに、同じ lua_state を持つ新しいスレッドが作成されます。したがって、スタック内の複数のスレッド エントリを取得するために lua_state が使用されます)。

Lua5.2を使用しています

4

1 に答える 1

3

Lua から呼び出された C 関数を使用していて、自分がどのスレッドにいるのかを知りたい場合は、 を呼び出すだけですlua_pushthread(L)

于 2012-09-08T15:00:07.430 に答える