moved object should not have a shape ID

fix [Bug #19917]
This commit is contained in:
Koichi Sasada 2023-12-20 03:45:41 +09:00
Родитель 7a0dfdea8c
Коммит 054f56fd3e
2 изменённых файлов: 20 добавлений и 0 удалений

Просмотреть файл

@ -1643,6 +1643,24 @@ assert_match /\Atest_ractor\.rb:1:\s+warning:\s+Ractor is experimental/, %q{
eval("Ractor.new{}.take", nil, "test_ractor.rb", 1)
}
# check moved object
assert_equal 'ok', %q{
r = Ractor.new do
Ractor.receive
GC.start
:ok
end
obj = begin
raise
rescue => e
e = Marshal.load(Marshal.dump(e))
end
r.send obj, move: true
r.take
}
## Ractor::Selector
# Selector#empty? returns true

Просмотреть файл

@ -3491,6 +3491,8 @@ ractor_moved_bang(VALUE obj)
rv->v3 = 0;
rv->flags = rv->flags & ~fl_users;
if (BUILTIN_TYPE(obj) == T_OBJECT) ROBJECT_SET_SHAPE_ID(obj, ROOT_SHAPE_ID);
// TODO: record moved location
}