Thread#value: handle threads killed by a fork
[Bug #18902] When a thread is killed because we forked, the `value` if left to `Qundef`. Returning it woudl crash the VM.
This commit is contained in:
parent
7dd0a22588
commit
65ae2bb2e0
Notes:
git
2022-07-08 02:49:44 +09:00
@ -1249,6 +1249,20 @@ q.pop
|
||||
assert_predicate(status, :success?, bug9751)
|
||||
end if Process.respond_to?(:fork)
|
||||
|
||||
def test_fork_value
|
||||
bug18902 = "[Bug #18902]"
|
||||
th = Thread.start { sleep 2 }
|
||||
begin
|
||||
pid = fork do
|
||||
th.value
|
||||
end
|
||||
_, status = Process.wait2(pid)
|
||||
assert_predicate(status, :success?, bug18902)
|
||||
ensure
|
||||
th.kill
|
||||
end
|
||||
end if Process.respond_to?(:fork)
|
||||
|
||||
def test_fork_while_locked
|
||||
m = Thread::Mutex.new
|
||||
thrs = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user