summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-12-30 06:23:25 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-12-30 06:23:25 +0000
commit49704012d3cc2df7bee8f9fd7c691f571748e493 (patch)
tree8c8cb9749b7732297df61de687db10c7531fa847
parent255948ae4ea45b6d0d2c0dc3a972e67886ceacdf (diff)
downloadruby-49704012d3cc2df7bee8f9fd7c691f571748e493.tar.gz
ruby-49704012d3cc2df7bee8f9fd7c691f571748e493.tar.xz
ruby-49704012d3cc2df7bee8f9fd7c691f571748e493.zip
* lib/generator.rb: (Generator#initialize) ensured to stop @loop_thread.
Mr. Tanaka pointed out one Thread.pass is not enough. [ruby-dev:28185] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--lib/generator.rb6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index f75212872..cfb85ad0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Dec 30 15:17:35 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+
+ * lib/generator.rb: (Generator#initialize) ensured to stop @loop_thread.
+ Mr. Tanaka pointed out one Thread.pass is not enough. [ruby-dev:28185]
+
Fri Dec 30 12:20:57 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* lib/generator.rb: (Generator#initialize) fixed dead lock. this occured
diff --git a/lib/generator.rb b/lib/generator.rb
index bf50004c8..241987fab 100644
--- a/lib/generator.rb
+++ b/lib/generator.rb
@@ -74,14 +74,14 @@ class Generator
@loop_thread = Thread.new do
Thread.stop
begin
- @block.call(self) # exception safe?
+ @block.call(self)
rescue
- @main_thread.raise $!
+ @main_thread.raise
ensure
@main_thread.wakeup
end
end
- Thread.pass # ensure @loop_thread to be stopped
+ Thread.pass until @loop_thread.stop?
self
end