Well it definitely does not work on my side and on several other computer. If you don't mind, could you tell me what version of Gamemaker you are running ?
You can try to tweak the amount of iterations in each loops, it tends to change the outcome. Also most of the time it just fails silently and keeps running without finishing the loop.
APurpleApple
2
Posts
1
Topics
A member registered Jun 13, 2020 · View creator page →
Recent community posts
Hi, i've already sent you a mail about this a few weeks ago but it seems that you're more active around here
Calling functions on a state while a child thread state is running a coroutine seems to break it. My current workaround is to duplicate every operation i do to another state, which i then exclusively use to branch thread states out of. This is obviously not ideal, and poses all sort of other logistical issues.
Is this a limitation of the current version ? The in-dev one mentions coroutines as being wip, do you have a time estimate on the feature's release ?
The issue can be easily reproduced on a blank project using the following code :
state = lua_state_create() lua_add_code(state, @" function test(num) for i = 1, num do coroutine.yield(i) end end function disrupt() end "); th = lua_thread_create(state); if (lua_call_start(th, "test", 10)) { while (lua_call_next(th)) { show_debug_message("yield: " + string(lua_call_result)); for (var i = 0; i < 5; i++) { lua_call(state, "disrupt") } } show_debug_message("result: " + string(lua_call_result)); }
Thanks for your time.