소스 검색

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 년 전
부모
커밋
7b4d88b9f8
1개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. +6
    -1
      src/main/java/altk/comm/engine/Broadcast.java

+ 6
- 1
src/main/java/altk/comm/engine/Broadcast.java 파일 보기

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


불러오는 중...
취소
저장