From: "David A. Black" Date: 2008-02-20T05:04:42+09:00 Subject: Re: threads at end of programs in 1.8/1.9 Whoops, no subject line -- I'm adding one. On Wed, 20 Feb 2008, David A. Black wrote: > Hi -- > > I'm trying to get a fix on thread behavior in 1.9 vs. 1.8.6, and the > following things seem odd to me (unless I've just slept through some > known changes, which is always possible). > > Doing this: > > $ ruby19 -ve 'Thread.new { puts "a" }' > ruby 1.9.0 (2008-02-15 revision 0) [i686-darwin9.1.0] > > always results in no output (except the version). > > The same thing in 1.8.6 always puts's "a": > > $ ruby -ve 'Thread.new { puts "a" }' > ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.10.1] > a > > So I figure that somehow the killing of the new thread upon exit is > "winning" over the execution of the thread. I guess that's OK (?). > Anyway, this tends to support that interpretation: > > $ ruby19 -e 'Thread.new { puts "a" }; sleep 0.01' > a > > I then did a few more little tests. I'm leaving in all the -v stuff, > since that's how it was, but the main point is that 1.8.6 seems to > always do this: > > $ ruby -ve 'Thread.new { puts "a" }; puts "b"' > ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.10.1] > a > b > > while 1.9 does a variety of things, presumably depending on > scheduling: > > $ ruby19 -ve 'Thread.new { puts "a" }; puts "b"' > ruby 1.9.0 (2008-02-15 revision 0) [i686-darwin9.1.0] > ba > > $ ruby19 -ve 'Thread.new { puts "a" }; puts "b"' > ruby 1.9.0 (2008-02-15 revision 0) [i686-darwin9.1.0] > b > $ ruby19 -ve 'Thread.new { puts "a" }; puts "b"' > ruby 1.9.0 (2008-02-15 revision 0) [i686-darwin9.1.0] > ba > > $ ruby19 -ve 'Thread.new { puts "a" }; puts "b"' > ruby 1.9.0 (2008-02-15 revision 0) [i686-darwin9.1.0] > ba > $ > > (That last one had both letters but only one newline.) > > I'm not quite sure what all of this adds up to, in terms of predicting > thread behavior at or near the end of a program. That one can't? :-) > > > David > > -- > Upcoming Rails training from David A. Black and Ruby Power and Light: > ADVANCING WITH RAILS, April 14-17 2008, New York City > CORE RAILS, June 24-27 2008, London (Skills Matter) > See http://www.rubypal.com for details, and stay > tuned for dates in Berlin! > -- Upcoming Rails training from David A. Black and Ruby Power and Light: ADVANCING WITH RAILS, April 14-17 2008, New York City CORE RAILS, June 24-27 2008, London (Skills Matter) See http://www.rubypal.com for details, and stay tuned for dates in Berlin!