I also tried to debug the problem by using dtruss (i'm on a mac) while 
the ruby program is running and tried to see what the differences are 
between the two. Problem is, I don't fully understand the output. 
Comparing them though, it seems like what enabled the 1st program to 
exit immediately on "ctrl + c" during gets is that the 
__pthread_canceled system call was executed.

If you guys have more insights into this, let me know:

case 1 (SIGINT with no system before gets) dtruss output: 
http://pastie.org/3305367
case 2 (SIGINT with system before gets)      dtruss output: 
http://pastie.org/3305276

-- 
Posted via http://www.ruby-forum.com/.