Project

General

Profile

Actions

Feature #22441

open

Add Ractor#alive?

Feature #22441: Add Ractor#alive?

Added by jhawthorn (John Hawthorn) 1 day ago. Updated about 21 hours ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:127109]

Description

I propose adding Ractor#alive? as a non-blocking way to ask whether a Ractor has finished. This matches Thread#alive?/Fiber#alive?.

r = Ractor.new { Ractor.receive }
r.alive? #=> true
r << :done
r.join
r.alive? #=> false

This is already somewhat visible via Ractor#inspect, but that's quite awkward. We use this in the test suite.

r = Ractor.new{ sleep 1 }
r.inspect #=> "#<Ractor:#3 (irb):4 running>"
sleep 2
r.inspect #=> "#<Ractor:#3 (irb):4 terminated>"

After fork, other Ractors alive? will return false, as with Thread#alive?.

https://github.com/ruby/ruby/pull/19349

Updated by jhawthorn (John Hawthorn) 1 day ago Actions #1

  • Description updated (diff)

Updated by ko1 (Koichi Sasada) about 21 hours ago Actions #2 [ruby-core:127116]

Matz approved it.

Actions

Also available in: PDF Atom