Skip to content

Commit 9a94ebe

Browse files
authored
Declare TypedData with RUBY_TYPED_THREAD_SAFE_FREE (#211)
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 d79a845 commit 9a94ebe

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

ext/strscan/strscan.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@ strscan_memsize(const void *ptr)
238238
return size;
239239
}
240240

241+
#ifndef RUBY_TYPED_THREAD_SAFE_FREE
242+
#define RUBY_TYPED_THREAD_SAFE_FREE RUBY_TYPED_FREE_IMMEDIATELY
243+
#endif
244+
241245
static const rb_data_type_t strscanner_type = {
242246
.wrap_struct_name = "StringScanner",
243247
.function = {
@@ -248,7 +252,7 @@ static const rb_data_type_t strscanner_type = {
248252
.dcompact = strscan_compact,
249253
#endif
250254
},
251-
.flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE
255+
.flags = RUBY_TYPED_THREAD_SAFE_FREE | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE
252256
};
253257

254258
static VALUE

0 commit comments

Comments
 (0)