lua-users home
lua-l archive

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

Good point; I believe that the coroutine will use the environment it was
compiled with.

On Fri, May 11, 2012 at 10:50:16AM +0200, Thijs Schreijer wrote:
> > Well, if you're using multiple coroutines and are relying on values in
> > the global Lua environment, you may notice some...interesting behavior
> > if you aren't consistent with with lua_State you use.  Coroutines may
> > have a different global environment from one another, so one
> > coroutine's "print" function may be different from another, or it may
> > not even exist in a given coroutine.  That is, of course, if you (or
> > someone else) modifies your coroutines' environments.
> The coroutine is initiated from a function, which has that 'different'
> environment. Right?
> Now if I store a function (passed as a parameter to a c function) on the c
> side and later collect that function (say I stored it in the registry), and
> execute it on a different *L than the one I got it from, doesn't my callback
> function then also bring along its own environment? the one that was set
> when it was defined?
> Or is the environment of the callback function altered to the one of the
> coroutine?