diff options
-rw-r--r-- | src/keeper.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/keeper.c b/src/keeper.c index 28dc338..4e2beb7 100644 --- a/src/keeper.c +++ b/src/keeper.c | |||
@@ -66,9 +66,13 @@ static int GNbKeepers = 0; | |||
66 | static void atexit_close_keepers(void) | 66 | static void atexit_close_keepers(void) |
67 | { | 67 | { |
68 | int i; | 68 | int i; |
69 | // 2-pass close, in case a keeper holds a reference to a linda bound to another keeoer | ||
69 | for( i = 0; i < GNbKeepers; ++ i) | 70 | for( i = 0; i < GNbKeepers; ++ i) |
70 | { | 71 | { |
71 | lua_close( GKeepers[i].L); | 72 | lua_close( GKeepers[i].L); |
73 | } | ||
74 | for( i = 0; i < GNbKeepers; ++ i) | ||
75 | { | ||
72 | GKeepers[i].L = 0; | 76 | GKeepers[i].L = 0; |
73 | //assert( GKeepers[i].count == 0); | 77 | //assert( GKeepers[i].count == 0); |
74 | MUTEX_FREE( &GKeepers[i].lock_); | 78 | MUTEX_FREE( &GKeepers[i].lock_); |