[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Yielding
- From: Roberto Ierusalimschy <roberto@...>
- Date: Thu, 26 Dec 2002 09:21:08 +0000
> And this will never cause the "attempt to yield across metamethod/C-call
> boundary" error (that can happen in lua_yield() if L->nCcalls > 0?
>
> It seems like there are some conditions that this might not work under
> (but perhaps I misunderstand the source). In particular, if the hook
> happens while a metamethod is running or inside of lua code called
> from c code from lua code, will it happily yield or will there be an
> error.
You can never yield across a C boundary. So, if the hook happens inside
a metamethod (or any other form of C call) and you call lua_yield
anyway, then you will have an error. But it is not difficult to check,
inside your hook, whether there are C calls in the stack, and therefore
whether it is safe to yield.
-- Roberto