public static Runnability getWorstCase()

in hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/scheduler/Runnability.java [46:99]


    public static Runnability getWorstCase(Runnability r1, Runnability r2) {
        switch (r1.tag) {
            case COMPLETED:
                switch (r2.tag) {
                    case COMPLETED:
                    case NOT_RUNNABLE:
                    case RUNNABLE:
                    case RUNNING:
                        return r2;
                }
                break;

            case NOT_RUNNABLE:
                switch (r2.tag) {
                    case COMPLETED:
                    case NOT_RUNNABLE:
                    case RUNNABLE:
                    case RUNNING:
                        return r1;
                }
                break;

            case RUNNABLE:
                switch (r2.tag) {
                    case COMPLETED:
                        return r1;

                    case RUNNING:
                        return r1.priority > 0 ? r1 : new Runnability(Tag.RUNNABLE, 1);

                    case NOT_RUNNABLE:
                        return r2;

                    case RUNNABLE:
                        return r1.priority > r2.priority ? r1 : r2;
                }
                break;

            case RUNNING:
                switch (r2.tag) {
                    case COMPLETED:
                    case RUNNING:
                        return r1;

                    case NOT_RUNNABLE:
                        return r2;

                    case RUNNABLE:
                        return r2.priority > 0 ? r2 : new Runnability(Tag.RUNNABLE, 1);
                }
                break;
        }
        throw new IllegalArgumentException("Could not aggregate: " + r1 + " and " + r2);
    }