You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2012/01/06 22:10:01 UTC
svn commit: r1228408 -
/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/UimaAsThreadFactory.java
Author: cwiklik
Date: Fri Jan 6 21:10:01 2012
New Revision: 1228408
URL: http://svn.apache.org/viewvc?rev=1228408&view=rev
Log:
UIMA-2309 use CountDownLatch to indicate the thread exit
Modified:
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/UimaAsThreadFactory.java
Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/UimaAsThreadFactory.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/UimaAsThreadFactory.java?rev=1228408&r1=1228407&r2=1228408&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/UimaAsThreadFactory.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/UimaAsThreadFactory.java Fri Jan 6 21:10:01 2012
@@ -19,6 +19,7 @@
package org.apache.uima.aae;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
@@ -51,6 +52,8 @@ public class UimaAsThreadFactory impleme
private final int poolId = poolIdGenerator.incrementAndGet();
+ private CountDownLatch latchToCountNumberOfTerminatedThreads;
+
public UimaAsThreadFactory(ThreadGroup tGroup) {
this(tGroup,null);
}
@@ -61,9 +64,14 @@ public class UimaAsThreadFactory impleme
* @param aController
*/
public UimaAsThreadFactory(ThreadGroup tGroup, PrimitiveAnalysisEngineController aController) {
+ this( tGroup, aController, null);
+ }
+ public UimaAsThreadFactory(ThreadGroup tGroup, PrimitiveAnalysisEngineController aController, CountDownLatch latchToCountNumberOfTerminatedThreads) {
controller = aController;
theThreadGroup = tGroup;
+ this.latchToCountNumberOfTerminatedThreads = latchToCountNumberOfTerminatedThreads;
}
+
public void setThreadNamePrefix(String prefix) {
threadNamePrefix = prefix;
}
@@ -124,13 +132,16 @@ public class UimaAsThreadFactory impleme
return;
} finally {
if ( controller instanceof PrimitiveAnalysisEngineController_impl ) {
- UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, getClass().getName(),
+ UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, getClass().getName(),
"UimaAsThreadFactory.run()", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAEE_process_thread_exiting__INFO", new Object[] {controller.getComponentName(),Thread.currentThread().getId()});
((PrimitiveAnalysisEngineController_impl)controller).destroyAE();
- UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, getClass().getName(),
+ UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, getClass().getName(),
"UimaAsThreadFactory.run()", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAEE_ae_instance_destroy_called__INFO", new Object[] {controller.getComponentName(),Thread.currentThread().getId()});
+ if ( latchToCountNumberOfTerminatedThreads != null ) {
+ latchToCountNumberOfTerminatedThreads.countDown();
+ }
}
}