diff options
| author | Matt Valentine-House <matt@eightbitraptor.com> | 2024-04-17 22:05:52 +0100 |
|---|---|---|
| committer | Matt Valentine-House <matt@eightbitraptor.com> | 2024-04-17 23:29:23 +0100 |
| commit | 0727d32b565d9365537ae9f14cbd9a2428addfa9 (patch) | |
| tree | 32b738ad1b4305dd116085bf2997b1115064891e /include/ruby/thread.h | |
| parent | 8b8130153625d551dddc1e1ff28de67ba3830dac (diff) | |
Don't verify during gc_enter when gc is disabled.
RGENGC_CHECK_MODE >=3 fails with an incinsistency in the old object
count during ec_finalization.
This is due to inconsistency introduced to the object graph using T_DATA
finalizers.
This is explained in commit 79df14c04b452411b9d17e26a398e491bca1a811,
which disabled gc during finalization to work around this.
```
/* prohibit GC because force T_DATA finalizers can break an object graph consistency */
dont_gc_on()
```
This object graph inconsistency also seems to break RGENGC_CHECK_MODE >=
3, when it attempt to verify the object age relationships during
finalization at VM shutdown (gc_enter is called during finalization).
This commit stops the internal consistency check during gc_enter only
when RGENGC_CHECK_MODE >= 3 and when gc is disabled.
This fixes `make btest` with `-DRGENGC_CHECK_MODE=3`
Diffstat (limited to 'include/ruby/thread.h')
0 files changed, 0 insertions, 0 deletions
