|
On 16/06/2014 08:16, Thomas Jericke wrote:
On 06/16/2014 01:11 PM, Thiago L. wrote:You have to call your Lua script with lua_resume. Using lua_call or lua_pcall will give you an error when you try to yield.On 16/06/2014 03:14, Thomas Jericke wrote:On 06/15/2014 04:20 PM, Thiago L. wrote:I'm messing with coroutines and sandboxing and I need a way to yield from a debug hook. This would let my code check for interrupts on every instruction and stuff... Does anyone have a patch for doing this?You don't need a patch to do this, at least not in Lua 5.2 -- ThomasUhh really? Why didn't it work then? (tested w/ lua 5.2.3)-- Thomas
Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio> co = coroutine.create(function() while true do end end) debug.sethook(co,funct ion() coroutine.yield() end, "clr", 1) print(coroutine.resume(co)) print(debug.t
raceback(co)) false attempt to yield across a C-call boundary stack traceback: [C]: in function 'yield' stdin:1: in function <stdin:1> stdin:1: in function <stdin:1>