Есть ли способ узнать, какой поток (сопрограмма), выполняющий сценарий Lua, является источником вызова lua_pushcclosure?
Чтобы управлять некоторыми вещами, относящимися к потокам lua (отложенная пауза / возобновление или частные переменные потока), мне нужно идентифицировать поток, участвующий в обратном вызове. Я знаю, что могу получить индекс потока при его создании с помощью lua_gettop, но я не могу найти способ его использовать, чтобы он помогал идентифицировать поток, когда вызов lua_pushcclosure запускается из сценария Lua.
Моя текущая система разрешает вызовы вложенных сценариев, поэтому сценарий может выполнять другие сценарии (каждый вызов вложенного сценария создает новый поток с тем же lua_state. Таким образом, lua_state используется для получения нескольких записей потоков в стеке).
Я использую Lua 5.2
lua_pushcclosure
не является обратным вызовом. Вы имеете в виду, когда вызываете эту функцию? - person Nicol Bolas   schedule 08.09.2012lua_pushcclosure
, может быть вызвана из разных потоков, и мне нужно определить, какой из них. - person Valkea   schedule 08.09.2012