presto-main/src/main/java/io/prestosql/operator/LookupJoinOperator.java/JoinProcessor/process
class JoinProcessor:        @Override
        public TransformationState<Page> process(@Nullable Page inputPage)
        {
            if (inputPage == null) {
                finish();
            }

            if (isFinished()) {
                return finished();
            }

            ListenableFuture<?> blocked = isBlocked();
            if (!blocked.isDone()) {
                return blocked(blocked);
            }

            boolean consumedInput = false;
            if (needsInput() && inputPage != null) {
                addInput(inputPage);
                consumedInput = true;
            }

            Page outputPage = getOutput();
            if (outputPage != null) {
                return ofResult(outputPage, consumedInput);
            }

            if (consumedInput) {
                return needsMoreData();
            }

            return yield();
        }