in src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationState.java [73:106]
public void notifyRefReplicated(
String project,
String ref,
URIish uri,
RefPushResult status,
RemoteRefUpdate.Status refUpdateStatus) {
pushResultProcessing.onRefReplicatedToOneNode(project, ref, uri, status, refUpdateStatus);
RefReplicationStatus completedRefStatus = null;
boolean allPushTasksCompleted = false;
countingLock.lock();
try {
RefReplicationStatus refStatus = getRefStatus(project, ref);
refStatus.replicatedNodesCount.getAndIncrement();
finishedPushTasksCount.getAndIncrement();
if (allScheduled) {
if (refStatus.allDone()) {
completedRefStatus = statusByProjectRef.remove(project, ref);
}
allPushTasksCompleted = finishedPushTasksCount.get() == totalPushTasksCount.get();
}
} finally {
countingLock.unlock();
}
if (completedRefStatus != null) {
doRefPushTasksCompleted(completedRefStatus);
}
if (allPushTasksCompleted) {
doAllPushTasksCompleted();
}
}