summaryrefslogtreecommitdiff
path: root/ractor_core.h
diff options
context:
space:
mode:
Diffstat (limited to 'ractor_core.h')
-rw-r--r--ractor_core.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/ractor_core.h b/ractor_core.h
index a065f5f809..9d4b8387c7 100644
--- a/ractor_core.h
+++ b/ractor_core.h
@@ -289,11 +289,13 @@ rb_ractor_id(const rb_ractor_t *r)
#if RACTOR_CHECK_MODE > 0
uint32_t rb_ractor_current_id(void);
+// If ractor check mode is enabled, shape bits needs to be smaller
+STATIC_ASSERT(shape_bits, SHAPE_BITS == 16);
static inline void
rb_ractor_setup_belonging_to(VALUE obj, uint32_t rid)
{
- VALUE flags = RBASIC(obj)->flags & 0xffffffff; // 4B
+ VALUE flags = RBASIC(obj)->flags & 0xffff0000ffffffff; // 4B
RBASIC(obj)->flags = flags | ((VALUE)rid << 32);
}
@@ -310,7 +312,7 @@ rb_ractor_belonging(VALUE obj)
return 0;
}
else {
- return RBASIC(obj)->flags >> 32;
+ return RBASIC(obj)->flags >> 32 & 0xFFFF;
}
}