From 891814ef1f60cdfc78ae5bce3a07c27cc65daee5 Mon Sep 17 00:00:00 2001 From: markt Date: Mon, 23 Nov 2009 00:31:43 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48248 Use volatile since field is accessed by multiple threads git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@883200 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/tribes/group/GroupChannel.java | 2 +- .../tribes/group/interceptors/MessageDispatchInterceptor.java | 2 +- .../catalina/tribes/group/interceptors/TcpPingInterceptor.java | 2 +- java/org/apache/catalina/tribes/membership/McastServiceImpl.java | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/java/org/apache/catalina/tribes/group/GroupChannel.java b/java/org/apache/catalina/tribes/group/GroupChannel.java index 1665c0efa..5606926d8 100644 --- a/java/org/apache/catalina/tribes/group/GroupChannel.java +++ b/java/org/apache/catalina/tribes/group/GroupChannel.java @@ -644,7 +644,7 @@ public class GroupChannel extends ChannelInterceptorBase implements ManagedChann return counter++; } - protected boolean doRun = true; + protected volatile boolean doRun = true; protected GroupChannel channel; protected long sleepTime; public HeartbeatThread(GroupChannel channel, long sleepTime) { diff --git a/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java b/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java index 13051e59c..e7ff8d206 100644 --- a/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java +++ b/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java @@ -42,7 +42,7 @@ public class MessageDispatchInterceptor extends ChannelInterceptorBase implement protected long maxQueueSize = 1024*1024*64; //64MB protected FastQueue queue = new FastQueue(); - protected boolean run = false; + protected volatile boolean run = false; protected Thread msgDispatchThread = null; protected long currentSize = 0; protected boolean useDeepClone = true; diff --git a/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java b/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java index 2a314340e..282eb7f9b 100644 --- a/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java +++ b/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java @@ -52,7 +52,7 @@ public class TcpPingInterceptor extends ChannelInterceptorBase { protected boolean useThread = false; protected boolean staticOnly = false; - protected boolean running = true; + protected volatile boolean running = true; protected PingThread thread = null; protected static AtomicInteger cnt = new AtomicInteger(0); diff --git a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java index f090f1339..c739e277d 100644 --- a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java +++ b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java @@ -57,8 +57,8 @@ public class McastServiceImpl /** * Internal flag used for the listen thread that listens to the multicasting socket. */ - protected boolean doRunSender = false; - protected boolean doRunReceiver = false; + protected volatile boolean doRunSender = false; + protected volatile boolean doRunReceiver = false; protected int startLevel = 0; /** * Socket that we intend to listen to @@ -575,7 +575,7 @@ public class McastServiceImpl }//class SenderThread protected static class RecoveryThread extends Thread { - static boolean running = false; + static volatile boolean running = false; McastServiceImpl parent = null; public RecoveryThread(McastServiceImpl parent) { this.parent = parent; -- 2.11.0