[ruby-core:93836] [Ruby master Bug#8708] It seems that a call to the "system" changes the handler of the INT signal

From: merch-redmine@...
Date: 2019-07-18 19:34:22 UTC
List: ruby-core #93836
Issue #8708 has been updated by jeremyevans0 (Jeremy Evans).

Backport deleted (1.9.3: UNKNOWN, 2.0.0: UNKNOWN)
Status changed from Open to Feedback

Can you reproduce this issue with a currently supported Ruby version and current version of Cygwin?  I tried the script on OpenBSD and on Windows and it works fine in both cases.

----------------------------------------
Bug #8708: It seems that a call to the "system" changes the handler of the INT signal
https://bugs.ruby-lang.org/issues/8708#change-79709

* Author: bdimych (Dmitry Bolshakov)
* Status: Feedback
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 1.9.3p429 (2013-05-15) [i386-cygwin]
* Backport: 
----------------------------------------
this is only on cygwin, on linux all ok
$ uname -a
CYGWIN_NT-5.1 bolshakovxp 1.7.21(0.267/5/3) 2013-07-15 12:17 i686 Cygwin


--- test script ---

#!/usr/bin/ruby
STDOUT.sync = true
puts 'before "system" ctrl-c stops the script immediately'
STDIN.sysread(1)
  # intTrap = trap 'INT', 'DEFAULT' # ---------------------- if uncomment this wrapper
system 'echo blabla'
  # trap 'INT', intTrap # ---------------------------------- then ctrl-c works immediately
puts 'but after "system" ctrl-c waits until I press Enter'
STDIN.sysread(1)


--- output ---

$ ./x.rb
before "system" ctrl-c stops the script immediately
./x.rb: Interrupt

$ ./x.rb
before "system" ctrl-c stops the script immediately

blabla
but after "system" ctrl-c waits until I press Enter
I'm pressing ctrl-c right now... but it stops only after Enter
./x.rb: Interrupt





-- 
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>

In This Thread