Как заставить веб-запрос ждать определенный интервал? - PullRequest
0 голосов
/ 03 января 2012

Я создал службу Restlet, содержащую метод GET. Когда происходит вызов этого метода GET, я хочу, чтобы запрос дождался, пока одна из моих логических переменных не станет истинной. (Я думаю, что таймер не является хорошим решением, так как он асинхронный). Любая функция доступна на GWT?

1 Ответ

1 голос
/ 03 января 2012

Если вы действительно хотите это сделать, просто синхронизируйте доступ к логической переменной и подождите 10 секунд:

private static boolean status;

private final Object lock = new Object();

public void setStatus(boolean newStatus) {
    synchronized(lock) {
        this.status = newStatus;
        if (this.status) {
            lock.notifyAll();
        }
    }
}

public boolean getTrueStatusOrBlock() throws InterrupedException {
    synchronized(lock) {
        if (status) {
            return true;
        }
        lock.wait(10000L);
        return status;
    }
}
...