You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/08/11 12:47:32 UTC

[lucene-solr] 01/03: @505 Keep playing with executor shutdown.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 58cd959cc6b552663dd3dbb0a8ef479daf087dee
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Aug 11 05:53:16 2020 -0500

    @505 Keep playing with executor shutdown.
---
 solr/solrj/src/java/org/apache/solr/common/ParWork.java         | 1 +
 solr/solrj/src/java/org/apache/solr/common/ParWorkExecutor.java | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/solr/solrj/src/java/org/apache/solr/common/ParWork.java b/solr/solrj/src/java/org/apache/solr/common/ParWork.java
index 259c9ea..6cdb655 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ParWork.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ParWork.java
@@ -638,6 +638,7 @@ public class ParWork implements Closeable {
     ThreadPoolExecutor exec;
     exec = new ParWorkExecutor("ParWork-" + Thread.currentThread().getName(),
             corePoolSize, Integer.MAX_VALUE, keepAliveTime);
+
     return exec;
   }
 
diff --git a/solr/solrj/src/java/org/apache/solr/common/ParWorkExecutor.java b/solr/solrj/src/java/org/apache/solr/common/ParWorkExecutor.java
index 437d7c4..95373a4 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ParWorkExecutor.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ParWorkExecutor.java
@@ -11,6 +11,7 @@ import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.locks.ReentrantLock;
 
 public class ParWorkExecutor extends ExecutorUtil.MDCAwareThreadPoolExecutor {
     private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -63,7 +64,11 @@ public class ParWorkExecutor extends ExecutorUtil.MDCAwareThreadPoolExecutor {
         });
 
         setRejectedExecutionHandler(new CallerRunsPolicy());
+    }
 
+    public void shutdown() {
         allowCoreThreadTimeOut(true);
+        setKeepAliveTime(1, TimeUnit.NANOSECONDS);
+        super.shutdown();
     }
 }