lua_resume(ls, ...) で中断しているスクリプトがあるんだけど、
再開するのではなく、リセットして最初から実行しなおしたい場合がある。
このとき、どうすればいい?

マニュアルには lua_newthread で作ったスレッドは解放しなくていい、
GCが管理すると書いてあるけど、さすがにいきなり

ls = lua_newthread(..);

って上書きするんだと、いつまでたっても古い ls の内容が削除されないよね?
だってLua側からしてみれば、古い ls はあくまでも中断してるのであって、
いつ再開されるかわからないからGCで回収できないし、
古い ls はもはや不要になったよー ってことをまったく Lua 側に知らせてないし。

かといって、明示的に ls が不要になったことを伝えるために

lua_close(ls);
ls = lua_newthread(...);
lua_resume(ls, ...);

とやってみると、lua_newthread で内部エラーが発生する(メモリ違反ぽい)
どうすればいいですか?