summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2026-02-02 06:50:09 -0800
committerJohn Hawthorn <john@hawthorn.email>2026-02-02 13:18:15 -0800
commitc104ede5469cd3a9d78b651bbcf4b1eb16a0b9d4 (patch)
tree1bae3771313c5f20a39cfb53847a1d68f9f3dd15
parent03090e2e72f3308571db9c9b76b4126fc271d6ec (diff)
Make Ractor::Port embeddable
-rw-r--r--ractor_sync.c21
1 files changed, 4 insertions, 17 deletions
diff --git a/ractor_sync.c b/ractor_sync.c
index a346ea497b..809469eecc 100644
--- a/ractor_sync.c
+++ b/ractor_sync.c
@@ -28,27 +28,15 @@ ractor_port_mark(void *ptr)
}
}
-static void
-ractor_port_free(void *ptr)
-{
- SIZED_FREE((struct ractor_port *)ptr);
-}
-
-static size_t
-ractor_port_memsize(const void *ptr)
-{
- return sizeof(struct ractor_port);
-}
-
static const rb_data_type_t ractor_port_data_type = {
"ractor/port",
{
ractor_port_mark,
- ractor_port_free,
- ractor_port_memsize,
+ RUBY_TYPED_DEFAULT_FREE,
+ NULL, // memsize
NULL, // update
},
- 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FROZEN_SHAREABLE,
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FROZEN_SHAREABLE | RUBY_TYPED_EMBEDDABLE,
};
static st_data_t
@@ -62,8 +50,7 @@ static struct ractor_port *
RACTOR_PORT_PTR(VALUE self)
{
VM_ASSERT(rb_typeddata_is_kind_of(self, &ractor_port_data_type));
- struct ractor_port *rp = DATA_PTR(self);
- return rp;
+ return RTYPEDDATA_GET_DATA(self);
}
static VALUE