mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Ractor.yield(obj, move: true) and
Ractor.select(..., yield_value: obj, move: true) tried to yield a
value with move semantices, but if the trial is faild, the obj
should not become a moved object.
To keep this rule, `wait_moving` wait status is introduced.
New yield/take process:
(1) If a ractor tried to yield (move:true), make taking racotr's
wait status `wait_moving` and make a moved object by
`ractor_move(obj)` and wakeup taking ractor.
(2) If a ractor tried to take a message from a ractor waiting fo
yielding (move:true), wakeup the ractor and wait for (1).
|
||
|---|---|---|
| .. | ||
| pending.rb | ||
| runner.rb | ||
| test_attr.rb | ||
| test_autoload.rb | ||
| test_block.rb | ||
| test_class.rb | ||
| test_env.rb | ||
| test_eval.rb | ||
| test_exception.rb | ||
| test_fiber.rb | ||
| test_finalizer.rb | ||
| test_flip.rb | ||
| test_flow.rb | ||
| test_fork.rb | ||
| test_gc.rb | ||
| test_insns.rb | ||
| test_io.rb | ||
| test_jump.rb | ||
| test_literal.rb | ||
| test_literal_suffix.rb | ||
| test_load.rb | ||
| test_marshal.rb | ||
| test_massign.rb | ||
| test_method.rb | ||
| test_objectspace.rb | ||
| test_proc.rb | ||
| test_ractor.rb | ||
| test_string.rb | ||
| test_struct.rb | ||
| test_syntax.rb | ||
| test_thread.rb | ||