[前][次][番号順一覧][スレッド一覧]

ruby-changes:23546

From: seki <ko1@a...>
Date: Wed, 9 May 2012 04:35:19 +0900 (JST)
Subject: [ruby-changes:23546] seki:r35597 (trunk): * lib/rinda/ring.rb (lookup_ring_any): fix Rinda::RingFinger.primary

seki	2012-05-09 04:35:07 +0900 (Wed, 09 May 2012)

  New Revision: 35597

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35597

  Log:
    * lib/rinda/ring.rb (lookup_ring_any): fix Rinda::RingFinger.primary 
      hungs forever. [ruby-talk:395364]

  Modified files:
    trunk/ChangeLog
    trunk/lib/rinda/ring.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 35596)
+++ ChangeLog	(revision 35597)
@@ -1,3 +1,8 @@
+Wed May  9 04:31:26 2012  Masatoshi SEKI  <m_seki@m...>
+
+	* 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@g...>
 
 	* include/ruby/win32.h (FD_SET): change function to macro.
Index: lib/rinda/ring.rb
===================================================================
--- lib/rinda/ring.rb	(revision 35596)
+++ lib/rinda/ring.rb	(revision 35597)
@@ -203,13 +203,17 @@
           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
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]