From: pebauer68@... Date: 2021-04-13T20:05:16+00:00 Subject: [ruby-core:103441] [Ruby master Bug#17801] repeated read from PTY blocks all Fibers Issue #17801 has been updated by pebauer (peter bauer). expected output from script on cli: date Di 13 Apr 2021 21:51:20 CEST test date Di 13 Apr 2021 21:51:21 CEST test ---------------------------------------- Bug #17801: repeated read from PTY blocks all Fibers https://bugs.ruby-lang.org/issues/17801#change-91533 * 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: