As "lua_State" not actually refers to
a state, but to a thread or an
execution stack, could it be renamed?
To something that properly reflects
what it is?
I suspect that the name was introduced
before coroutines were added, which
meant that a state and a thread were
pretty much the same thing then.
+1 for lua_Thread.
I don't really get the use of the word
'thread' in the C API, they are called
"coroutines" in the Lua library.
--
Thomas
It's because not all threads are coroutines. Every Lua
state automatically has a "main" thread, and this
thread is not a coroutine. It cannot be suspended.
For example, compare the C API
function lua_pushthread(L), which will always push a
thread object even if it is the main thread, with the
Lua library function coroutine.running(), which will
return nil if the current thread is the main thread.
-Duncan
Unless things have changed in the most recent
version(s), in which case: for historical reasons. :)
-Duncan
coroutine.running() returns the main thread in lua 5.2+