From: pebauer68@... Date: 2021-04-13T19:31:54+00:00 Subject: [ruby-core:103439] [Ruby master Bug#17801] repeated read from PTY blocks all Fibers Issue #17801 has been reported by pebauer (peter bauer). ---------------------------------------- Bug #17801: repeated read from PTY blocks all Fibers https://bugs.ruby-lang.org/issues/17801 * Author: pebauer (peter bauer) * Status: Open * Priority: Normal * 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: