[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: retrieve top-level lua_State?
- From: Graham Wakefield <lists@...>
- Date: Thu, 4 Jun 2009 17:30:10 -0700
Just wondering if any lua guru can suggest a way I might retrieve the
top-level lua_State pointer in a module's C function.
Given that a lua_State * can be spawned from another with
coroutine.create() or lua_newthread(L), it's not always guaranteed
that the lua_State * pointer you receive in module functions is always
the same, but the top-level state would always be. Even the lua_State
* received in the luaopen_xxx call might not be the top level (e.g.
require() was called in a coroutine.)
The reason is that I need a unique index with which to call back into
distinct Lua universes, in a situation where several such universes
may coexist (but not interact) in the same application, and
(distinctly) load the same module. I would prefer not to defer this
responsibility to the application itself or require modifications to
Lua itself, as it would reduce the portability of the module in
I hope the question is clear. Any ideas?