summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/rinda/ring.rb8
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index e7de9b08ed..477a67fd9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed May 9 04:31:26 2012 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+
+ * lib/rinda/ring.rb (lookup_ring_any): fix Rinda::RingFinger.primary
+ hungs forever. [ruby-talk:395364]
+
Tue May 8 21:09:00 2012 Hiroshi Shirosaki <h.shirosaki@gmail.com>
* include/ruby/win32.h (FD_SET): change function to macro.
diff --git a/lib/rinda/ring.rb b/lib/rinda/ring.rb
index 3ff4606e2a..8a2a201c8a 100644
--- a/lib/rinda/ring.rb
+++ b/lib/rinda/ring.rb
@@ -203,13 +203,17 @@ module Rinda
queue.push(ts)
end
queue.push(nil)
+ end
+
+ @primary = queue.pop
+ raise('RingNotFound') if @primary.nil?
+
+ Thread.new do
while it = queue.pop
@rings.push(it)
end
end
- @primary = queue.pop
- raise('RingNotFound') if @primary.nil?
@primary
end