On 1/29/19 1:35 PM, Jeff Moyer wrote: > Jens Axboe <axboe@xxxxxxxxx> writes: > >> On 1/29/19 11:31 AM, Jens Axboe wrote: >>>> The code looks a little clumsy to me. Why not: >>>> >>>> while (!list_empty(&ctx->poll_list)) { >>>> int ret = io_do_iopoll(ctx, nr_events, min); >>>> if (ret) >>>> return ret; >>>> >>>> if (!min || *nr_events >= min) >>>> return 0; >>>> } >>>> >>>> return 1; >>> >>> I think you messed up the 0/1 here, how about this: >>> >>> while (!list_empty(&ctx->poll_list)) { >>> int ret; >>> >>> ret = io_do_iopoll(ctx, nr_events, min); >>> if (ret < 0) >>> return ret; >>> if (!min || *nr_events >= min) >>> return 1; >>> } >>> >>> return 0; >> >> Or I did... I think yours is correct. > > maybe document the return code? ;-) It is sort-of documented - <= 0 means "don't call me again", either because of an error (< 0) or because we have what we need. 1 means "I might have more". But yes, maybe a comment... -- Jens Axboe