highest
int lowest, highest;
highest = 0;
while (highest < jif->jif_maxpri+1 && available[highest] >= 0)
highest++; /* which is the highest class that needs more service? */
while (highest != jif->jif_maxpri+1 && lowest != -1) {
if (available[lowest]+available[highest] > 0) {
n[lowest] += available[highest];
n[highest] -= available[highest];
available[lowest] += available[highest];
available[highest] = 0;
while (highest < jif->jif_maxpri+1
&& available[highest] >= 0)
highest++; /* which is the highest class that needs more service now? */
} else if (available[lowest]+available[highest] == 0) {
n[lowest] += available[highest];
n[highest] -= available[highest];
available[highest] = 0;
while (highest < jif->jif_maxpri+1
&& available[highest] >= 0)
highest++; /* which is the highest class that needs more service? */
} else if (available[lowest]+available[highest] < 0) {
n[highest] += available[lowest];
available[highest] += available[lowest];
if (highest != jif->jif_maxpri+1) {