internal void OnGlobalThreadStateChange(GlobalStreamThread thread, IThreadStateTransitionValidator old, IThreadStateTransitionValidator @new) { lock (threadStatesLock) { if (thread != null) { GlobalThreadState newState = (GlobalThreadState)@new; globalThreadState = newState; if (newState == GlobalThreadState.RUNNING) { MaybeSetRunning(); } else if (newState == GlobalThreadState.DEAD && stream.SetState(KafkaStream.State.ERROR)) { log.Error("Global thread has died. The instance will be in error state and should be closed."); } } } }
internal void OnChange(IThread thread, IThreadStateTransitionValidator old, IThreadStateTransitionValidator @new) { lock (threadStatesLock) { if (thread is StreamThread) { ThreadState newState = (ThreadState)@new; threadState.AddOrUpdate(thread.Id, newState); if (newState == ThreadState.PARTITIONS_REVOKED || newState == ThreadState.PARTITIONS_ASSIGNED) { stream.SetState(KafkaStream.State.REBALANCING); } else if (newState == ThreadState.RUNNING) { MaybeSetRunning(); } else if (newState == ThreadState.DEAD) { MaybeSetError(); } } } }
public bool IsValidTransition(IThreadStateTransitionValidator newState) { return(Transitions.Contains(((GlobalThreadState)newState).Ordinal)); }