So I have stripped down the someMethod() to just latch.await() and the retrieveValue() call. Validation gives me the hint to 'call countDown on the object stored in the latch field'. But why? await stops all threads till the latchs internal counter is set to zero. If I countdown before await what's the sense of await? And if I add it later it has no sense either cause all threads stop at the await position and never will reach countDown except I countDown somewhere else like in main. Here I created a task that just calls someMethod and then I call countDown. That's how I understand it should be working. So why calling countdown in someMethod?