Bug: finalizer calling exit can corrupt finalization order

'os.exit' can call lua_close again, separating new finalizers
created after all previous finalizers were already separated.
This commit is contained in:
Roberto Ierusalimschy
2021-12-22 09:00:52 -03:00
parent 86ec152433
commit 597a53bbc6
3 changed files with 34 additions and 5 deletions

1
lgc.h
View File

@@ -154,6 +154,7 @@
*/
#define GCSTPUSR 1 /* bit true when GC stopped by user */
#define GCSTPGC 2 /* bit true when GC stopped by itself */
#define GCSTPCLS 4 /* bit true when closing Lua state */
#define gcrunning(g) ((g)->gcstp == 0)