|
It is found here:
http://lua-users.org/lists/lua-l/2008-02/msg00243.html I was experimenting with it the other day and noticed the following code crashes inside lparser.c: function Func() running = true; finalize running = false end if running then return false end return Idle_loop() -- Tail call end The patch doesn't look like it uses the OP_TAILCALL instruction at all, missing out on valuable savings. Does anyone have an update or even a better way to do this? It doesn't appear to be exactly efficient. I'd love to find a patch that just does injection of the code in this manner: function Func() running = true; -- finalize running = false end if somebadthing then running = false --!!!!!! return false end mutex:lock(); -- finalize mutex:unlock() end if running then mutex:unlock() --!!!!!! running = false --!!!!!! return false end mutex:unlock() --!!!!!! running = false --!!!!!! return Idle_loop() -- Tail call end Thanks. Josh |