lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



http://www.lua.org/manual/5.1/manual.html#lua_sethook

int lua_sethook (lua_State *L, lua_Hook f, int mask, int count);

The current API does not allow giving upvalues to the hook function from C API. This would be required in multithreading scenarios where several Lua states may be using the same lua_Hook function.

My current bypass is to tie a userdata via registry, but that registry access needs to be unwrapped each time the hook runs, which may be a lot.

Suggestion for future API:

int lua_sethook_x (lua_State *L, lua_Hook f, unsigned upvalues, int mask, int count);
#define lua_sethook(L,f,mask,count) lua_sethook_x(L,f,0,mask,count);

-asko