Project

General

Profile

Actions

Bug #9122

closed

requiring readline in a spawned ruby process with new process group can hang it

Added by gnufied (hemant kumar) over 10 years ago. Updated over 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
2.0.0-p247
Backport:
[ruby-core:58398]

Description

Lets say I have a program:

~> cat a.rb
require "pty"
require "io/console"
puts "Starting"

m, s = PTY.open
s.raw! # disable newline conversion.

pid = spawn("ruby using_pry.rb", chdir: '.', pgroup: true, out: m, err: m)
at_exit { Process.kill("TERM", pid)}
Process.wait(pid)

and

~> cat b.rb
require "readline"

loop do
puts "Hello"
sleep(5)
end

If I run a.rb, spawned process gets hung at requiring readline. However if I close the stdin in spawned process via in: :close this problem does not occur. It also does not happen if I am not reassinging STDOUT of spawned process as currently I do.

Actions

Also available in: Atom PDF

Like0
Like0Like0