public Optional takeIncomingMessage()

in src/main/java/org/openvasp/client/session/impl/AbstractSession.java [108:124]


    public Optional<VaspMessage> takeIncomingMessage(long timeout) {
        incomingQueueLock.lock();
        try {
            if (!incomingQueue.isEmpty()) {
                return Optional.of(incomingQueue.remove());
            } else {
                return hasNewMessages.await(timeout, TimeUnit.MILLISECONDS)
                        ? Optional.of(incomingQueue.remove())
                        : Optional.empty();
            }
        } catch (InterruptedException ex) {
            Thread.currentThread().interrupt();
            return Optional.empty();
        } finally {
            incomingQueueLock.unlock();
        }
    }