private Invocation waitForTaskStatus()

in src/main/java/com/aliyun/cloudops/acs/ecs/toolkit/CloudAssistant.java [224:242]


    private Invocation waitForTaskStatus(String regionId, String invokeId, int timeout, Predicate<Invocation> predicate) throws InterruptedException {
        AtomicReference<Invocation> result = new AtomicReference<>();
        final CountDownLatch countDownLatch = new CountDownLatch(1);
        this.scheduleTaskQuery(regionId, invokeId, invocation -> {
            if (predicate.test(invocation)) {
                result.set(invocation);
                countDownLatch.countDown();
                return true;
            } else {
                return false;
            }
        });
        if (timeout > 0) {
            countDownLatch.await(timeout, TimeUnit.SECONDS);
        } else {
            countDownLatch.await();
        }
        return result.get();
    }