Author: jbellis
Date: Fri Nov 20 19:06:22 2009
New Revision: 882682

URL: http://svn.apache.org/viewvc?rev=882682&view=rev
Log:
make members volatile where necessary to make double-checked locking safe.  
patch by gdusbabek; reviewed by jbellis for CASSANDRA-248

Modified:
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java?rev=882682&r1=882681&r2=882682&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java
 (original)
+++ 
incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java
 Fri Nov 20 19:06:22 2009
@@ -49,7 +49,7 @@
     private static final int phiConvictThreshold_ = 8;
     /* The Failure Detector has to have been up for at least 1 min. */
     private static final long uptimeThreshold_ = 60000;
-    private static IFailureDetector failureDetector_;
+    private static volatile IFailureDetector failureDetector_;
     /* Used to lock the factory for creation of FailureDetector instance */
     private static Lock createLock_ = new ReentrantLock();
     /* The time when the module was instantiated. */

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java?rev=882682&r1=882681&r2=882682&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java 
(original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java 
Fri Nov 20 19:06:22 2009
@@ -96,7 +96,7 @@
     final static String GOSSIP_DIGEST_ACK2_VERB = "GA2V";
     public final static int intervalInMillis_ = 1000;
     private static Logger logger_ = Logger.getLogger(Gossiper.class);
-    static Gossiper gossiper_;
+    private static volatile Gossiper gossiper_;
 
     public synchronized static Gossiper instance()
     {

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java?rev=882682&r1=882681&r2=882682&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
 (original)
+++ 
incubator/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
 Fri Nov 20 19:06:22 2009
@@ -89,7 +89,7 @@
     
     private static Logger logger_ = Logger.getLogger(MessagingService.class);
     
-    private static MessagingService messagingService_ = new MessagingService();
+    private static volatile MessagingService messagingService_ = new 
MessagingService();
 
     private static final int MESSAGE_DESERIALIZE_THREADS = 4;
 


Reply via email to