[#104307] Float truncate — Eustáquio Rangel <eustaquiorangel@...>
Hi!
4 messages
2021/06/16
[ruby-core:104391] [Ruby master Bug#17801] repeated read from PTY blocks all Fibers
From:
pebauer68@...
Date:
2021-06-23 18:59:42 UTC
List:
ruby-core #104391
Issue #17801 has been updated by pebauer (peter bauer).
Yes, this works. Thank you.
master.nonblock = true
----------------------------------------
Bug #17801: repeated read from PTY blocks all Fibers
https://bugs.ruby-lang.org/issues/17801#change-92629
* Author: pebauer (peter bauer)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
Ruby version:
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
used Scheduler:
https://github.com/ruby/ruby/blob/master/test/fiber/scheduler.rb
Example Code which should work:
```
require 'pty'
require "./scheduler.rb"
line_event = TracePoint.new(:line) do |t|
p [t.lineno, t.method_id, t.path]
end
Fiber.set_scheduler(Scheduler.new)
master, slave = PTY.open
read, write = IO.pipe
pid = spawn("bash", :in=>read, :out=>slave)
read.close # we dont need the read
slave.close # or the slave
line_event.enable do
Fiber.schedule do
loop do
puts "date"
write.puts "date"
sleep 1
end
end
Fiber.schedule do
loop do
puts master.gets.chomp
puts master.gets.chomp # this line blocks all fibers, why ?
puts "test"
sleep 1
end
end
#write.close
end
```
--
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>