Skip to content

Commit c6e815d

Browse files
committed
Declare TypedData with RUBY_TYPED_THREAD_SAFE_FREE
Available on Ruby 4.1: [Feature #22067] Ref: https://bugs.ruby-lang.org/issues/22067 When available this flag superseed RUBY_TYPED_FREE_IMMEDIATELY and allow parallel sweeping of the type.
1 parent ffa818b commit c6e815d

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

ext/bigdecimal/bigdecimal.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,14 +208,18 @@ BigDecimal_memsize(const void *ptr)
208208
#endif
209209
}
210210

211+
#ifndef RUBY_TYPED_THREAD_SAFE_FREE
212+
#define RUBY_TYPED_THREAD_SAFE_FREE RUBY_TYPED_FREE_IMMEDIATELY
213+
#endif
214+
211215
static const rb_data_type_t BigDecimal_data_type = {
212216
.wrap_struct_name = "BigDecimal",
213217
.function = {
214218
.dmark = 0,
215219
.dfree = RUBY_DEFAULT_FREE,
216220
.dsize = BigDecimal_memsize,
217221
},
218-
.flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE,
222+
.flags = RUBY_TYPED_THREAD_SAFE_FREE | RUBY_TYPED_FROZEN_SHAREABLE | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE,
219223
};
220224

221225
static VALUE

0 commit comments

Comments
 (0)