[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: dofile, loadfile, loadstring in a coroutine
- From: Graham Wakefield <lists@...>
- Date: Sat, 21 Apr 2007 14:11:45 -0700
Just a sanity check - should there be a problem making these calls
within a coroutine (thread) resumed from C? When I try, I get no
error but also nothing actually happens. A bit hard to show the code
here since it is embedded in a complex C++ application, sorry, but
even this:
f = loadstring("print('hello')")
print("f()", f, f())
results in:
f() function: 0x1095f60
i.e., no 'hello' appears.
The main thread lua state is created like this:
L = lua_newstate(Lua :: alloc, 0);
if (L) {
//lua_atpanic(L, Lua :: panic);
luaL_openlibs(L);
}
The main lua file is then loaded into a lua_State * L like this:
if (luaL_loadfile (L, path))
{
printf("dofile error: %s", lua_tostring(L, -1));
lua_pop(L, 1);
}
Then resumed like this:
int result = lua_resume(L, lua_gettop(L) - 1); // in case I pushed
some args to it
Is this part of the whole yielding across a pcall problem (which I
have to admit is still not clear, despite reading many manual entries
and lua-list messages).