[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/35] blockjob: mark coroutine_fn
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 07/35] blockjob: mark coroutine_fn |
Date: |
Wed, 5 Jul 2017 00:03:18 +0200 |
/home/elmarco/src/qemu/blockjob.c:820:9: error: calling function
'qemu_coroutine_yield' requires holding role '_coroutine_fn' exclusively
[-Werror,-Wthread-safety-analysis]
qemu_coroutine_yield();
^
/home/elmarco/src/qemu/blockjob.c:824:5: error: calling function
'block_job_pause_point' requires holding role '_coroutine_fn' exclusively
[-Werror,-Wthread-safety-analysis]
block_job_pause_point(job);
^
Signed-off-by: Marc-André Lureau <address@hidden>
---
include/block/blockjob_int.h | 4 ++--
blockjob.c | 6 ++++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/include/block/blockjob_int.h b/include/block/blockjob_int.h
index f13ad05c0d..a3bc01fd51 100644
--- a/include/block/blockjob_int.h
+++ b/include/block/blockjob_int.h
@@ -145,7 +145,7 @@ void *block_job_create(const char *job_id, const
BlockJobDriver *driver,
* Put the job to sleep (assuming that it wasn't canceled) for @ns
* nanoseconds. Canceling the job will interrupt the wait immediately.
*/
-void block_job_sleep_ns(BlockJob *job, QEMUClockType type, int64_t ns);
+void coroutine_fn block_job_sleep_ns(BlockJob *job, QEMUClockType type,
int64_t ns);
/**
* block_job_yield:
@@ -153,7 +153,7 @@ void block_job_sleep_ns(BlockJob *job, QEMUClockType type,
int64_t ns);
*
* Yield the block job coroutine.
*/
-void block_job_yield(BlockJob *job);
+void coroutine_fn block_job_yield(BlockJob *job);
/**
* block_job_pause_all:
diff --git a/blockjob.c b/blockjob.c
index 70a78188b7..96424323c1 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -788,7 +788,8 @@ bool block_job_is_cancelled(BlockJob *job)
return job->cancelled;
}
-void block_job_sleep_ns(BlockJob *job, QEMUClockType type, int64_t ns)
+void coroutine_fn
+block_job_sleep_ns(BlockJob *job, QEMUClockType type, int64_t ns)
{
assert(job->busy);
@@ -806,7 +807,8 @@ void block_job_sleep_ns(BlockJob *job, QEMUClockType type,
int64_t ns)
block_job_pause_point(job);
}
-void block_job_yield(BlockJob *job)
+void coroutine_fn
+block_job_yield(BlockJob *job)
{
assert(job->busy);
--
2.13.1.395.gf7b71de06
- Re: [Qemu-devel] [PATCH 02/35] WIP: coroutine: manually tag the fast-paths, (continued)
- [Qemu-devel] [PATCH 05/35] coroutine: remove coroutine_fn from qemu_co_queue_run_restart(), Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 06/35] coroutine: mark CoRwLock coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 07/35] blockjob: mark coroutine_fn,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Marc-André Lureau, 2017/07/04
- Re: [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Paolo Bonzini, 2017/07/05
- Re: [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Marc-André Lureau, 2017/07/05
- Re: [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Paolo Bonzini, 2017/07/05
- Re: [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Marc-André Lureau, 2017/07/05
- Re: [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Paolo Bonzini, 2017/07/05
- Re: [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Marc-André Lureau, 2017/07/05
- Re: [Qemu-devel] [PATCH 08/35] block: all bdrv_aio callbacks are coroutine_fn, Paolo Bonzini, 2017/07/05
[Qemu-devel] [PATCH 09/35] block: bdrv_create() and bdrv_debug_event() are coroutine_fn, Marc-André Lureau, 2017/07/04