diff options
Diffstat (limited to 'string.c')
| -rw-r--r-- | string.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -1378,8 +1378,13 @@ rb_str_free(VALUE str) { if (FL_TEST(str, RSTRING_FSTR)) { st_data_t fstr = (st_data_t)str; - st_delete(rb_vm_fstring_table(), &fstr, NULL); - RB_DEBUG_COUNTER_INC(obj_str_fstr); + + RB_VM_LOCK_ENTER(); + { + st_delete(rb_vm_fstring_table(), &fstr, NULL); + RB_DEBUG_COUNTER_INC(obj_str_fstr); + } + RB_VM_LOCK_LEAVE(); } if (STR_EMBED_P(str)) { |
