public CompletableFuture<Void> awaitAsync() {
        phaser.arriveAndDeregister();
        return terminationFuture;
    }
@Test
    void testAwaitAsyncIsIdempotent() {
        final CompletableFuture<Void> awaitFuture = inFlightRequestTracker.awaitAsync();

        assertThat(awaitFuture).isDone();
        assertThat(awaitFuture)
                .as("The reference to the future must not change")
                .isSameAs(inFlightRequestTracker.awaitAsync());
    }