aboutsummaryrefslogtreecommitdiffstats
path: root/vm.c
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2022-05-15 16:07:12 +1200
committerGitHub <noreply@github.com>2022-05-15 16:07:12 +1200
commit32de6097b2b5d8394b3a1399e13d309444697954 (patch)
treebfcad8e159c733e0ed6ae0b6e72743cd2eb0e3c7 /vm.c
parent48002ff1877e2fedb5d3893eec4ea633b87ea22f (diff)
downloadruby-32de6097b2b5d8394b3a1399e13d309444697954.tar.gz
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.
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index 8b172b5a39..c0309c7f61 100644
--- a/vm.c
+++ b/vm.c
@@ -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