diff options
author | Samuel Williams <[email protected]> | 2022-05-15 16:07:12 +1200 |
---|---|---|
committer | GitHub <[email protected]> | 2022-05-15 16:07:12 +1200 |
commit | 32de6097b2b5d8394b3a1399e13d309444697954 (patch) | |
tree | bfcad8e159c733e0ed6ae0b6e72743cd2eb0e3c7 /vm.c | |
parent | 48002ff1877e2fedb5d3893eec4ea633b87ea22f (diff) |
Fix various autoload race conditions. (#5898)
* Add RUBY_VM_CRITICAL_SECTION for detecting unexpected context switch.
* Prevent race between GC mark and autoload setup.
* Protect race on autoload state.
* Avoid potential race condition when allocating `autoload_featuremap`.
* Add NEWS entry for autoload fixes.
Notes
Notes:
Merged-By: ioquatix <[email protected]>
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -48,6 +48,10 @@ #endif #include "probes_helper.h" +#ifdef RUBY_VM_CRITICAL_SECTION +int rb_vm_critical_section_entered = 0; +#endif + VALUE rb_str_concat_literals(size_t, const VALUE*); /* :FIXME: This #ifdef is because we build pch in case of mswin and |