H
Hal Fulton
Why doesn't this work?
prog1 calls prog2... the latter starts by writing a line, then reading
a line. The former reads first, then writes.
It hangs indefinitely. When I kill prog1, it appears that I interrupted
a gets on each side.
What am I doing that's stupid?
Thanks,
Hal
# prog1
io = IO.popen("ruby prog2.rb","r+")
str = io.gets
puts "got: #{str}"
io.puts "junk"
str = io.gets
puts "got: #{str}"
io.puts "junk"
str = io.gets
puts "got: #{str}"
io.puts "junk"
#!/usr/local/bin/ruby
# prog2
puts "This is prompt 1"
gets
puts "This is 2nd prompt"
gets
puts "3rd/final prompt"
gets
$ ruby prog1.rb # and then ctl-C
prog1.rb:2:in `gets': Interrupt from prog1.rb:2
prog2.rb:3:in `gets': Interrupt from prog2.rb:3
prog1 calls prog2... the latter starts by writing a line, then reading
a line. The former reads first, then writes.
It hangs indefinitely. When I kill prog1, it appears that I interrupted
a gets on each side.
What am I doing that's stupid?
Thanks,
Hal
# prog1
io = IO.popen("ruby prog2.rb","r+")
str = io.gets
puts "got: #{str}"
io.puts "junk"
str = io.gets
puts "got: #{str}"
io.puts "junk"
str = io.gets
puts "got: #{str}"
io.puts "junk"
#!/usr/local/bin/ruby
# prog2
puts "This is prompt 1"
gets
puts "This is 2nd prompt"
gets
puts "3rd/final prompt"
gets
$ ruby prog1.rb # and then ctl-C
prog1.rb:2:in `gets': Interrupt from prog1.rb:2
prog2.rb:3:in `gets': Interrupt from prog2.rb:3