@Override
public Object call() throws Exception
{
Assert.assertTrue(latch1.await(timing.forWaiting().seconds(), TimeUnit.SECONDS));
timing.sleepABit(); // make sure second acquire is waiting
Assert.assertTrue(count.trySetCount(2));
//Make sure second acquire takes less than full waiting time:
timing.sleepABit();
Assert.assertTrue(latch2.await(0, TimeUnit.SECONDS));
return null;
}