lua-users home
lua-l archive

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


Scratch that.  I see now that the return value of lua_resume() has changed between 5.1 and 5.0.2.

 

My code was interpreting non-zero (i.e. LUA_YIELD) as an error code as per the 5.0.2 documentation.

 


From: lua-bounces@bazar2.conectiva.com.br [mailto:lua-bounces@bazar2.conectiva.com.br] On Behalf Of Brian Hassink
Sent: Tuesday, April 11, 2006 4:51 PM
To: Lua list
Subject: RE: Thread problem with 5.0.2 -> 5.1

 

Actually, I’ve determined that lua_resume() is not failing but rather my script is aborting after a call is made to lua_yield(thread, 0) from a C-function invoked by the script.

 

Has something changed in the yield behavior for threads?

 


From: lua-bounces@bazar2.conectiva.com.br [mailto:lua-bounces@bazar2.conectiva.com.br] On Behalf Of Brian Hassink
Sent: Tuesday, April 11, 2006 4:36 PM
To: lua@bazar2.conectiva.com.br
Subject: Thread problem with 5.0.2 -> 5.1

 

The following (simplified) sequence works under 5.0.2…

 

lua_State* thread = lua_newthread(L);

refKey = luaL_ref(L, LUA_REGISTRYINDEX);

lua_pcall(thread, 0, 0, 0);

lua_getglobal(thread, "main");

lua_pushnumber(thread, id);

lua_resume(thread, 1);

 

…but under 5.1 the call to lua_resume() fails, and lua_tostring(thread, -1) returns an inconsistent numerical value (in the range of 0 through 60).

 

Is there something about this sequence that is no longer valid under 5.1?

 

Thanks,

Brian