On 2018-01-19 21:58, John Snow wrote: > This is just an optimization for callers who are likely going to > want to check quite close to this call if the job was canceled or > not anyway.
But jobs are “cancelled” and not “canceled”. !!! > > Along the same lines, add the return to block_job_pause_point and > block_job_sleep_ns, so we don't have to re-check it quite so > excessively. > > Signed-off-by: John Snow <[email protected]> > --- > blockjob.c | 28 +++++++++++++++++----------- > include/block/blockjob_int.h | 8 +++++--- > 2 files changed, 22 insertions(+), 14 deletions(-) [...] > diff --git a/include/block/blockjob_int.h b/include/block/blockjob_int.h > index 5f1520fab7..1ceb47e1e6 100644 > --- a/include/block/blockjob_int.h > +++ b/include/block/blockjob_int.h > @@ -147,7 +147,7 @@ void *block_job_create(const char *job_id, const > BlockJobDriver *driver, > * %QEMU_CLOCK_REALTIME nanoseconds. Canceling the job will immediately > * interrupt the wait. > */ > -void block_job_sleep_ns(BlockJob *job, int64_t ns); > +int block_job_sleep_ns(BlockJob *job, int64_t ns); > > /** > * block_job_yield: > @@ -167,8 +167,10 @@ void block_job_yield(BlockJob *job); > * If delay_ns is 0, yield if it has been SLICE_TIME > * nanoseconds since the last yield. Otherwise, check > * if we need to yield for a pause event. > + * > + * returns ECANCELED if the job has been canceled. -ECANCELED, please. With that fixed: Reviewed-by: Max Reitz <[email protected]> > */ > -void block_job_relax(BlockJob *job, int64_t delay_ns); > +int block_job_relax(BlockJob *job, int64_t delay_ns); > > /** > * block_job_pause_all: > @@ -217,7 +219,7 @@ bool block_job_is_cancelled(BlockJob *job); > * Pause now if block_job_pause() has been called. Block jobs that perform > * lots of I/O must call this between requests so that the job can be paused. > */ > -void coroutine_fn block_job_pause_point(BlockJob *job); > +int coroutine_fn block_job_pause_point(BlockJob *job); > > /** > * block_job_enter: >
signature.asc
Description: OpenPGP digital signature
