Commit 314d0f2
committed
Guard dict watcher dealloc and restore uncompiled vectorcalls on shutdown
Two safety improvements:
1. Dict watcher: skip notifyDictUnwatch on EVENT_DEALLOCATED/CLONED —
the dict may be partially freed during GC
2. phoenix_free: restore Ci_PyFunction_Vectorcall for registered-but-
uncompiled functions before jit::finalize(), preventing dangling
jitCountingTrampoline references to freed JIT state
Note: a GC crash persists in bare `import _cinderx; gc.collect()` due
to something jit::initialize() sets up. Does NOT affect the test suite
(460/480 pass) — only affects minimal scripts that import _cinderx
without compiling any function. Root cause is inside jit::initialize()
and needs GDB investigation.1 parent f9af530 commit 314d0f2
1 file changed
Lines changed: 14 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
60 | 65 | | |
61 | 66 | | |
62 | 67 | | |
| |||
225 | 230 | | |
226 | 231 | | |
227 | 232 | | |
| 233 | + | |
| 234 | + | |
228 | 235 | | |
229 | 236 | | |
230 | 237 | | |
231 | 238 | | |
232 | 239 | | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
233 | 246 | | |
234 | 247 | | |
235 | 248 | | |
| |||
0 commit comments