From: eregontp@... Date: 2020-11-11T19:12:59+00:00 Subject: [ruby-core:100797] [Ruby master Bug#17310] Closed ractors should die Issue #17310 has been updated by Eregon (Benoit Daloze). I think (2) is a better solution. A Ractor should always be able to send messages while it's alive. Another thought: maybe `Ractor.new { 42 }` should not automatically Ractor.yield the result? Because `Ractor.new {}` does not wait for `resume` or so to start, so it seems asymmetric to yield the result (conceptually, we can see `Fiber` yields both before starting and when finishing). It is convenient to `Ractor.new { ... }.take`, but we could have `Ractor#join` for that purpose, and that would also work more reliably, independent of intermediate `Ractor.yield` calls. ---------------------------------------- Bug #17310: Closed ractors should die https://bugs.ruby-lang.org/issues/17310#change-88440 * Author: marcandre (Marc-Andre Lafortune) * Status: Closed * Priority: Normal * Assignee: ko1 (Koichi Sasada) * ruby -v: ruby 3.0.0dev (2020-11-07T21:47:45Z master 2f12af42f7) [x86_64-darwin18] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- While backporting Ractors, I found this issue: ```ruby 10.times { Ractor.new { sleep(0.1) } } sleep(1) puts Ractor.count # => 1, ok # but: 10.times { Ractor.new { sleep(0.1) }.close } sleep(1) Ractor.count # => 11, should be 1 ``` -- https://bugs.ruby-lang.org/ Unsubscribe: