private boolean checkSeqAndProcessInput(final Pipe<ServerResponseSchema> sourcePipe, int pipeIdx, boolean keepWorking,
int peekMsgId, int myPipeIdx, long channelId, int sequenceNo, int idx,
int expected) {
if ((0==sequenceNo) || (sequenceNo >= expected)) {
if ((0==sequenceNo) || (expected == sequenceNo)) {
keepWorking = processExpectedSequenceValue(sourcePipe, pipeIdx,
keepWorking, peekMsgId,
myPipeIdx, sequenceNo,
channelId, idx, expected);
} else {
assert(hangDetect(pipeIdx, sequenceNo, channelId, expected));
assert(sequenceNo>expected) : "found smaller than expected sequenceNo, they should never roll back";
assert(Pipe.bytesReadBase(sourcePipe)>=0);
keepWorking = false;
}
} else {
keepWorking = badSequenceNumberProcessing(channelId, sequenceNo, expected);
}
return keepWorking;
}