private static <S extends MessageSchema<S>> boolean doneCopy(ReplicatorStage<S> ss,
int byteTailPos, int primaryTailPos,
int totalPrimaryCopy,
int totalBytesCopy) {
int c = 0;
int[] working = ss.working;
int limit = ss.workingPos;
for(int j=0; j<limit; j++) {
Pipe<S> target = ss.targets[working[j]];
if (Pipe.hasRoomForWrite(target, totalPrimaryCopy)) {
Pipe.confirmLowLevelWriteUnchecked(target, totalPrimaryCopy);
copyData(ss, byteTailPos, totalBytesCopy, primaryTailPos, totalPrimaryCopy, target);
Pipe.sumWrittenFragments(target, ss.totalFragmentsCopy);
Pipe.notifyPubListener(target);
} else {
working[c++] = working[j];
}
}
ss.workingPos = c;
return 0==c;
}