Procházet zdrojové kódy

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 před 3 roky
rodič
revize
7b4d88b9f8
1 změnil soubory, kde provedl 6 přidání a 1 odebrání
  1. +6
    -1
      src/main/java/altk/comm/engine/Broadcast.java

+ 6
- 1
src/main/java/altk/comm/engine/Broadcast.java Zobrazit soubor

@@ -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


Načítá se…
Zrušit
Uložit