[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 08/13] allow block_job_relax to return -ECANC
From: |
Max Reitz |
Subject: |
Re: [Qemu-block] [PATCH v2 08/13] allow block_job_relax to return -ECANCELED |
Date: |
Wed, 7 Feb 2018 23:27:36 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
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 <address@hidden>
> ---
> 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 <address@hidden>
> */
> -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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-block] [PATCH v2 08/13] allow block_job_relax to return -ECANCELED,
Max Reitz <=