Bladeren bron

Fix bug of sometimes not terminating broadcast when paused with large number of service threads.

This happens when all remaining jobs are being serviced by
service threads when PAUSE is initiated.  Similarly fixed
for CANCEL.
tags/1.0.11
ymlam 3 jaren geleden
bovenliggende
commit
7b4d88b9f8
1 gewijzigde bestanden met toevoegingen van 6 en 1 verwijderingen
  1. +6
    -1
      src/main/java/altk/comm/engine/Broadcast.java

+ 6
- 1
src/main/java/altk/comm/engine/Broadcast.java Bestand weergeven

@@ -220,6 +220,7 @@ public abstract class Broadcast
toStates.put(BroadcastState.CANCELING, Arrays.asList(
BroadcastState.ABORTING,
BroadcastState.ABORTED,
BroadcastState.COMPLETED,
BroadcastState.CANCELED, // User action
BroadcastState.PURGED // User action
));
@@ -233,6 +234,7 @@ public abstract class Broadcast
// Transitions from PAUSING
toStates.put(BroadcastState.PAUSING, Arrays.asList(
BroadcastState.RUNNING, // User action
BroadcastState.COMPLETED,
BroadcastState.ABORTING,
BroadcastState.CANCELED, // User action
BroadcastState.PAUSED,
@@ -1182,7 +1184,10 @@ public abstract class Broadcast
serviceActivityCount += increment;
if (increment < 0 && serviceActivityCount <= 0)
{
if (state == BroadcastState.RUNNING)
if (state == BroadcastState.RUNNING
|| state == BroadcastState.PAUSING
|| state == BroadcastState.CANCELING
)
{
// TODO: investigate possibility that 0 remainingJobCount may
// not be final. It may still change because a finishing job


Laden…
Annuleren
Opslaan