1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/bootstraptest
nagachika a72b7b898c merge revision(s) d0d6227a0da5925acf946a09191f172daf53baf2,fff1edf23ba28267bf57097c269f7fa87530e3fa: [Backport #17529]
alen should be actions number on ractor_select()

	alen was number of rs, but it should be actions number
	(taking ractors + receiving + yielding).
	---
	 ractor.c | 13 ++++++-------
	 1 file changed, 6 insertions(+), 7 deletions(-)

	fix Ractor.yield(obj, move: true)

	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).
	---
	 bootstraptest/test_ractor.rb | 25 +++++++++++++++
	 ractor.c                     | 73 +++++++++++++++++++++++++++++++++++---------
	 ractor_core.h                |  1 +
	 3 files changed, 84 insertions(+), 15 deletions(-)
2022-03-21 16:52:05 +09:00
..
pending.rb
runner.rb Debug the command used for gdb dump 2020-12-13 23:35:29 -08:00
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 merge revision(s) d0d6227a0da5925acf946a09191f172daf53baf2,fff1edf23ba28267bf57097c269f7fa87530e3fa: [Backport #17529] 2022-03-21 16:52:05 +09:00
test_string.rb
test_struct.rb
test_syntax.rb
test_thread.rb