Count arrivals down on a checkpoint latch and report whether it has opened.

Latch Checkpoint Coordination Report

LatchCheckpointCoordinationReport.java
import java.util.concurrent.CountDownLatch;

public class LatchCheckpointCoordinationReport {
    public static void main(String[] args) {
        int arrivals = ;
        CountDownLatch latch = new CountDownLatch(3);

        for (int i = 0; i < arrivals; i++) {
            latch.countDown();
        }

        long remaining = latch.getCount();
        String status = remaining == 0 ? "open" : remaining <= 1 ? "ready" : "wait";

        System.out.println("arrivals=" + arrivals + " remaining=" + remaining + " status=" + status);
    }
}
import java.util.concurrent.CountDownLatch;

public class LatchCheckpointCoordinationReport {
    public static void main(String[] args) {
        int arrivals = ;
        CountDownLatch latch = new CountDownLatch(3);

        for (int i = 0; i < arrivals; i++) {
            latch.countDown();
        }

        long remaining = latch.getCount();
        String status = remaining == 0 ? "open" : remaining <= 1 ? "ready" : "wait";

        System.out.println("arrivals=" + arrivals + " remaining=" + remaining + " status=" + status);
    }
}
import java.util.concurrent.CountDownLatch;

public class LatchCheckpointCoordinationReport {
    public static void main(String[] args) {
        int arrivals = ;
        CountDownLatch latch = new CountDownLatch(3);

        for (int i = 0; i < arrivals; i++) {
            latch.countDown();
        }

        long remaining = latch.getCount();
        String status = remaining == 0 ? "open" : remaining <= 1 ? "ready" : "wait";

        System.out.println("arrivals=" + arrivals + " remaining=" + remaining + " status=" + status);
    }
}
countdown latch A `CountDownLatch` starts at a fixed count and opens when enough workers have arrived, so its remaining count is a clear coordination checkpoint.