You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2013/11/19 00:12:12 UTC
svn commit: r1543226 -
/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
Author: schor
Date: Mon Nov 18 23:12:12 2013
New Revision: 1543226
URL: http://svn.apache.org/r1543226
Log:
[UIMA-3433] fix semaphore cleanup
Modified:
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java?rev=1543226&r1=1543225&r2=1543226&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java Mon Nov 18 23:12:12 2013
@@ -3151,13 +3151,20 @@ public class AggregateAnalysisEngineCont
public void stop() {
super.stop(true); // shutdown now
- // release all permits
- if ( semaphore != null ) {
- while ( semaphore.availablePermits() > 0) {
- semaphore.release();
- }
- }
-
+ // enable blocked threads to finish // https://issues.apache.org/jira/browse/UIMA-3433
+ if ( semaphore != null ) {
+ while ( semaphore.hasQueuedThreads()) {
+ semaphore.release(); // permit any blocked threads to clean up
+ try {
+ Thread.sleep(1); // allow other thread to become unqueued
+ } catch (InterruptedException e) {
+ }
+ }
+// semaphore.drainPermits();
+// while ( semaphore.availablePermits() > 0) {
+// semaphore.release();
+// }
+ }
this.cleanUp();