void (@NotNull Invoker invoker) { CountDownLatch latch = new CountDownLatch(1); test(invoker, latch, error -> { AtomicBoolean later = new AtomicBoolean(); String expected = Long.toHexString(System.currentTimeMillis()); register(invoker.compute(() -> { try { if (invoker.isValidThread()) { Thread.sleep(100); if (!later.get()) return expected; return "unexpectedly computed later"; } return "thread invalid"; } catch (InterruptedException ignore) { return "thread interrupted"; } })).onSuccess(actual -> countDown(latch, 0, error, actual, () -> expected.equals(actual))); later.set(true); }); }