Итак, я пытаюсь построить многозадачную систему в lua, которая через определенные промежутки времени передает управление основному потоку.Проблема состоит в том, что debug.sethook
, кажется, заставляет сопрограммы немедленно умирать, когда вы устанавливаете его для вызова coroutine.yield
.
Настройка, чтобы сделать что-то еще, кажется, работает должным образом.
o=coroutine.create(function()
print("Hello")
print("goodbye")
end)
debug.sethook(o,coroutine.yield,"l",1)
coroutine.resume(o)--No output here
print(coroutine.status(o))--prints dead.
Что я делаю не так?
Редактировать: Это также происходит в почти минимальном контексте, поэтому я упростил пример кода.