version 1.54, 2010/04/24 06:18:23 |
version 1.55, 2010/04/24 13:32:21 |
|
|
maxwrite = p->u.mix.maxlat - p->u.mix.lat; |
maxwrite = p->u.mix.maxlat - p->u.mix.lat; |
mix_bzero(obuf); |
mix_bzero(obuf); |
scount = 0; |
scount = 0; |
|
/* XXX: can obuf->len be larger than obuf->w.mix.todo ? */ |
odone = obuf->len; |
odone = obuf->len; |
for (i = LIST_FIRST(&p->ins); i != NULL; i = inext) { |
for (i = LIST_FIRST(&p->ins); i != NULL; i = inext) { |
inext = LIST_NEXT(i, ient); |
inext = LIST_NEXT(i, ient); |
|
|
if (!(p->flags & APROC_DROP)) |
if (!(p->flags & APROC_DROP)) |
return 0; |
return 0; |
odone = obuf->w.mix.todo; |
odone = obuf->w.mix.todo; |
p->u.mix.idle += odone; |
|
} |
} |
if (maxwrite > 0) { |
if (maxwrite > 0) { |
if (odone > maxwrite) |
if (odone > maxwrite) |
|
|
if (APROC_OK(p->u.mix.mon)) |
if (APROC_OK(p->u.mix.mon)) |
mon_snoop(p->u.mix.mon, obuf, obuf->used - odone, odone); |
mon_snoop(p->u.mix.mon, obuf, obuf->used - odone, odone); |
} |
} |
|
if (LIST_EMPTY(&p->ins)) |
|
p->u.mix.idle += odone; |
if (scount == 0) |
if (scount == 0) |
return 0; |
return 0; |
return 1; |
return 1; |