You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2018/10/15 07:21:27 UTC
svn commit: r1843879 - in /tomcat/trunk:
java/org/apache/catalina/tribes/membership/ webapps/docs/
Author: kfujino
Date: Mon Oct 15 07:21:26 2018
New Revision: 1843879
URL: http://svn.apache.org/viewvc?rev=1843879&view=rev
Log:
Move the event notification ThreadPoolExecutor to MembershipProviderBase.
Modified:
tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipProviderBase.java
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java?rev=1843879&r1=1843878&r2=1843879&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java Mon Oct 15 07:21:26 2018
@@ -26,8 +26,6 @@ import java.net.InetSocketAddress;
import java.net.MulticastSocket;
import java.net.SocketTimeoutException;
import java.util.Arrays;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.catalina.tribes.Channel;
@@ -36,7 +34,6 @@ import org.apache.catalina.tribes.Member
import org.apache.catalina.tribes.MessageListener;
import org.apache.catalina.tribes.io.ChannelData;
import org.apache.catalina.tribes.io.XByteBuffer;
-import org.apache.catalina.tribes.util.ExecutorFactory;
import org.apache.catalina.tribes.util.StringManager;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
@@ -142,12 +139,6 @@ public class McastServiceImpl extends Me
protected boolean recoveryEnabled = true;
/**
- * Dont interrupt the sender/receiver thread, but pass off to an executor
- */
- protected final ExecutorService executor =
- ExecutorFactory.newThreadPool(0, 2, 2, TimeUnit.SECONDS);
-
- /**
* disable/enable local loopback message
*/
protected final boolean localLoopbackDisabled;
@@ -329,6 +320,7 @@ public class McastServiceImpl extends Me
startLevel = (startLevel & (~level));
//we're shutting down, send a shutdown message and close the socket
if ( startLevel == 0 ) {
+ executor.shutdownNow();
//send a stop message
member.setCommand(Member.SHUTDOWN_PAYLOAD);
send(false);
Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipProviderBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipProviderBase.java?rev=1843879&r1=1843878&r2=1843879&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipProviderBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/membership/MembershipProviderBase.java Mon Oct 15 07:21:26 2018
@@ -18,17 +18,22 @@
package org.apache.catalina.tribes.membership;
import java.util.Properties;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
import org.apache.catalina.tribes.Member;
import org.apache.catalina.tribes.MembershipListener;
import org.apache.catalina.tribes.MembershipProvider;
import org.apache.catalina.tribes.MembershipService;
+import org.apache.catalina.tribes.util.ExecutorFactory;
public abstract class MembershipProviderBase implements MembershipProvider {
protected Membership membership;
protected MembershipListener membershipListener;
protected MembershipService service;
+ // The event notification executor
+ protected final ExecutorService executor = ExecutorFactory.newThreadPool(0, 10, 10, TimeUnit.SECONDS);
@Override
public void init(Properties properties) throws Exception {
Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java?rev=1843879&r1=1843878&r2=1843879&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java Mon Oct 15 07:21:26 2018
@@ -25,8 +25,6 @@ import java.nio.charset.StandardCharsets
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.TimeUnit;
import org.apache.catalina.tribes.Channel;
import org.apache.catalina.tribes.ChannelException;
@@ -39,7 +37,6 @@ import org.apache.catalina.tribes.group.
import org.apache.catalina.tribes.group.RpcChannel;
import org.apache.catalina.tribes.util.Arrays;
import org.apache.catalina.tribes.util.ExceptionUtils;
-import org.apache.catalina.tribes.util.ExecutorFactory;
import org.apache.catalina.tribes.util.StringManager;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
@@ -64,8 +61,6 @@ public class StaticMembershipProvider ex
protected long pingInterval = 1000;
protected volatile boolean running = true;
protected PingThread thread = null;
- // The event notification executor
- protected final ExecutorService executor = ExecutorFactory.newThreadPool(0, 10, 10, TimeUnit.SECONDS);
@Override
public void init(Properties properties) throws Exception {
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1843879&r1=1843878&r2=1843879&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Oct 15 07:21:26 2018
@@ -210,6 +210,10 @@
Experimental Kubernetes aware cloud membership provider, based on code
by Maxime Beck. Contains code derived from jgroups. (remm/kfujino)
</add>
+ <fix>
+ Move the event notification <code>ThreadPoolExecutor</code> to
+ <code>MembershipProviderBase</code>. (kfujino)
+ </fix>
</changelog>
</subsection>
<subsection name="Other">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1843879 - in /tomcat/trunk: java/org/apache/catalina/tribes/membership/
webapps/docs/
Posted by Rémy Maucherat <re...@apache.org>.
On Mon, Oct 15, 2018 at 9:21 AM <kf...@apache.org> wrote:
>
> + // The event notification executor
> + protected final ExecutorService executor =
> ExecutorFactory.newThreadPool(0, 10, 10, TimeUnit.SECONDS);
>
Ok, so the Container provides the backgroundProcess callback. In addition
to that, I see a Container.execute(Runnable) could also be useful, and
maybe then refactor using an ExecutorService.
Rémy