Выдвижение функции из глобального состояния в поток Lua - PullRequest
1 голос
/ 25 декабря 2011

У меня есть функция C ++, называемая lua_tcall, которая расширяет возможности lua_pcall. Когда вызывается lua_tcall, он ожидает, что верхним значением стека является функция Lua, во многом как lua_pcall. Я хотел бы, чтобы lua_tcall мог создавать поток и использовать функцию в верхней части глобального стека в качестве функции потока. Как мне перевести функцию из глобального состояния в lua_State *, которую я получаю из lua_newthread?

Ответы [ 2 ]

2 голосов
/ 01 января 2012

Для передачи значений между состояниями lua_xmove лучше, чем использование общего посредника.

2 голосов
/ 25 декабря 2011

Чтобы передать функцию из одного lua_State в другое, вы должны использовать что-то глобальное для обоих состояний, чтобы сохранить объект в качестве посредника. Вы можете использовать глобальную переменную или запись в реестре.

...