Issue #12566 has been updated by Nobuyoshi Nakada.

Description updated
Status changed from Open to Closed

----------------------------------------
Bug #12566: IO.copy_stream : tty/command-line events not being passed around
https://bugs.ruby-lang.org/issues/12566#change-59541

* Author: Tiago Cardoso
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Coming from here: http://stackoverflow.com/questions/38248911/ruby-when-copying-streams-how-to-make-it-pass-input-characters

I don't know if the `stdin` is not flushing the special characters down the stack, or the leaf process `stdout` is not flushing upwards, but something is fishy in this:

```ruby
#!/usr/bin/env
require 'open3'                              
Open3.popen3("expect -") do |i, o, e, t|     
  Thread.start { IO.copy_stream(o, $stdout) }
  Thread.start { IO.copy_stream(e, $stderr) }
  i << "spawn bash\ninteract\nwait\nexit\n"  
  Thread.start { IO.copy_stream($stdin, i) } 
  t.value                                    
end  
#=> after executing, try "ls" and press tab
```




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>