merge revision(s) 07ab172ebe: [Backport #17636]

sync check_rvalue_consistency_force()

	check_rvalue_consistency_force() uses is_pointer_to_heap() and
	it should be synchronized with other ractors.
	[Bug #17636]
	---
	 gc.c | 149 ++++++++++++++++++++++++++++++++++---------------------------------
	 1 file changed, 76 insertions(+), 73 deletions(-)
This commit is contained in:
NARUSE, Yui 2021-03-11 20:34:40 +09:00
parent de6072a22e
commit d3863cb2e8
2 changed files with 79 additions and 76 deletions

7
gc.c
View file

@ -1239,9 +1239,11 @@ RVALUE_FLAGS_AGE(VALUE flags)
static int static int
check_rvalue_consistency_force(const VALUE obj, int terminate) check_rvalue_consistency_force(const VALUE obj, int terminate)
{ {
rb_objspace_t *objspace = &rb_objspace;
int err = 0; int err = 0;
rb_objspace_t *objspace = &rb_objspace;
RB_VM_LOCK_ENTER_NO_BARRIER();
{
if (SPECIAL_CONST_P(obj)) { if (SPECIAL_CONST_P(obj)) {
fprintf(stderr, "check_rvalue_consistency: %p is a special const.\n", (void *)obj); fprintf(stderr, "check_rvalue_consistency: %p is a special const.\n", (void *)obj);
err++; err++;
@ -1327,11 +1329,12 @@ check_rvalue_consistency_force(const VALUE obj, int terminate)
} }
} }
} }
}
RB_VM_LOCK_LEAVE_NO_BARRIER();
if (err > 0 && terminate) { if (err > 0 && terminate) {
rb_bug("check_rvalue_consistency_force: there is %d errors.", err); rb_bug("check_rvalue_consistency_force: there is %d errors.", err);
} }
return err; return err;
} }

View file

@ -12,7 +12,7 @@
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
#define RUBY_VERSION_TEENY 0 #define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
#define RUBY_PATCHLEVEL 51 #define RUBY_PATCHLEVEL 52
#define RUBY_RELEASE_YEAR 2021 #define RUBY_RELEASE_YEAR 2021
#define RUBY_RELEASE_MONTH 3 #define RUBY_RELEASE_MONTH 3