View | Details | Raw Unified | Return to bug 41959
Collapse All | Expand All

(-)a/C4/HoldsQueue.pm (-5 / +4 lines)
Lines 486-497 RETRY: Link Here
486
    while (1) {
486
    while (1) {
487
        return [] if $num_agents == 0 || $num_tasks == 0;
487
        return [] if $num_agents == 0 || $num_tasks == 0;
488
488
489
        if ( $num_tasks < $num_agents && @remaining ) {
489
        if ( $num_tasks <= $num_agents && @remaining ) {
490
490
491
            # On retry, move tasks from @remaining to @requests up to
491
            # On retry, move tasks from @remaining to @requests up to
492
            # the number of agents.
492
            # the number of agents.
493
            my $nr = scalar(@remaining);
493
            my $nr = scalar(@remaining);
494
            my $na = $num_agents - $num_tasks;
494
            my $na = $num_agents - $num_tasks || 1;
495
            my $nm = $nr < $na ? $nr : $na;
495
            my $nm = $nr < $na ? $nr : $na;
496
            push @requests, ( splice @remaining, 0, $nm );
496
            push @requests, ( splice @remaining, 0, $nm );
497
            $num_tasks += $nm;
497
            $num_tasks += $nm;
Lines 575-583 RETRY: Link Here
575
            }
575
            }
576
        }
576
        }
577
577
578
        $num_tasks = scalar(@requests);
578
        $num_tasks = scalar(@requests) + scalar(@remaining);
579
579
580
        if ( $num_agents > $num_tasks && @remaining ) {
580
        if ( $num_agents >= $num_tasks && @remaining ) {
581
581
582
            $r                = $num_tasks;
582
            $r                = $num_tasks;
583
            @candidate_tasks  = ( (1) x $num_tasks );
583
            @candidate_tasks  = ( (1) x $num_tasks );
584
- 

Return to bug 41959