Parcourir la source

Pause and resume

tags/CommEngine-0.0.3
ymlam il y a 6 ans
Parent
révision
56002b3bee
3 fichiers modifiés avec 23 ajouts et 11 suppressions
  1. +1
    -1
      src/main/java/altk/comm/engine/Broadcast.java
  2. +2
    -0
      src/main/java/altk/comm/engine/CommEngine.java
  3. +20
    -10
      src/main/java/altk/comm/engine/Postback.java

+ 1
- 1
src/main/java/altk/comm/engine/Broadcast.java Voir le fichier

@@ -934,7 +934,7 @@ public abstract class Broadcast

protected void pause()
{
// Sets state to HALTED, which is monitored by Broadcast.Service threads.
// Sets state to PAUSING, which is monitored by Broadcast.Service threads.
setState(BroadcastState.PAUSING);
}


+ 2
- 0
src/main/java/altk/comm/engine/CommEngine.java Voir le fichier

@@ -331,6 +331,7 @@ public abstract class CommEngine extends HttpServlet
return;
}
broadcast.pause();
out.print("OK");
}


@@ -345,6 +346,7 @@ public abstract class CommEngine extends HttpServlet
return;
}
broadcast.resume();
out.print("OK");
}

/**


+ 20
- 10
src/main/java/altk/comm/engine/Postback.java Voir le fichier

@@ -146,30 +146,40 @@ public class Postback
}
// No reports
BroadcastState finalState = null;
BroadcastState toState = null;
String reason = null;
switch (broadcast.getState())
{
case ALLDONE:
finalState = BroadcastState.COMPLETED;
toState = BroadcastState.COMPLETED;
reason = "All posted";
break;
case CANCELING:
finalState = BroadcastState.CANCELED;
if (broadcast.getActiveJobCount() > 0) break;
toState = BroadcastState.CANCELED;
reason = "User canceled";
break;
case PAUSING:
finalState = BroadcastState.PAUSED;
if (broadcast.getActiveJobCount() > 0) break;
toState = BroadcastState.PAUSED;
reason = "User paused";
break;
default:
}
if (finalState != null)
{
broadcast.terminate(finalState, reason);
myLogger.info("All posted, thread terminating");
return;
}
if (toState != null)
{
if (toState.isFinal)
{
broadcast.terminate(toState, reason);
myLogger.info("All posted, thread terminating");
return;
}
else
{
broadcast.setState(toState);
return;
}
}
if (broadcast.getState().isFinal)
{
// No more. Notify all waiting postback threads and exit thread


Chargement…
Annuler
Enregistrer