[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 11/11] jobs: remove job_defer_to_main_loop
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PULL 11/11] jobs: remove job_defer_to_main_loop |
Date: |
Fri, 31 Aug 2018 16:24:46 +0200 |
From: John Snow <address@hidden>
Now that the job infrastructure is handling the job_completed call for
all implemented jobs, we can remove the interface that allowed jobs to
schedule their own completion.
Signed-off-by: John Snow <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>
---
include/qemu/job.h | 17 -----------------
job.c | 40 ++--------------------------------------
2 files changed, 2 insertions(+), 55 deletions(-)
diff --git a/include/qemu/job.h b/include/qemu/job.h
index 23395c17fa..e0cff702b7 100644
--- a/include/qemu/job.h
+++ b/include/qemu/job.h
@@ -568,23 +568,6 @@ void job_finalize(Job *job, Error **errp);
*/
void job_dismiss(Job **job, Error **errp);
-typedef void JobDeferToMainLoopFn(Job *job, void *opaque);
-
-/**
- * @job: The job
- * @fn: The function to run in the main loop
- * @opaque: The opaque value that is passed to @fn
- *
- * This function must be called by the main job coroutine just before it
- * returns. @fn is executed in the main loop with the job AioContext acquired.
- *
- * Block jobs must call bdrv_unref(), bdrv_close(), and anything that uses
- * bdrv_drain_all() in the main loop.
- *
- * The @job AioContext is held while @fn executes.
- */
-void job_defer_to_main_loop(Job *job, JobDeferToMainLoopFn *fn, void *opaque);
-
/**
* Synchronously finishes the given @job. If @finish is given, it is called to
* trigger completion or cancellation of the job.
diff --git a/job.c b/job.c
index 37d828f964..b960e72710 100644
--- a/job.c
+++ b/job.c
@@ -561,12 +561,8 @@ static void coroutine_fn job_co_entry(void *opaque)
assert(job && job->driver && job->driver->run);
job_pause_point(job);
job->ret = job->driver->run(job, &job->err);
- if (!job->deferred_to_main_loop) {
- job->deferred_to_main_loop = true;
- aio_bh_schedule_oneshot(qemu_get_aio_context(),
- job_exit,
- job);
- }
+ job->deferred_to_main_loop = true;
+ aio_bh_schedule_oneshot(qemu_get_aio_context(), job_exit, job);
}
@@ -969,38 +965,6 @@ void job_complete(Job *job, Error **errp)
job->driver->complete(job, errp);
}
-
-typedef struct {
- Job *job;
- JobDeferToMainLoopFn *fn;
- void *opaque;
-} JobDeferToMainLoopData;
-
-static void job_defer_to_main_loop_bh(void *opaque)
-{
- JobDeferToMainLoopData *data = opaque;
- Job *job = data->job;
- AioContext *aio_context = job->aio_context;
-
- aio_context_acquire(aio_context);
- data->fn(data->job, data->opaque);
- aio_context_release(aio_context);
-
- g_free(data);
-}
-
-void job_defer_to_main_loop(Job *job, JobDeferToMainLoopFn *fn, void *opaque)
-{
- JobDeferToMainLoopData *data = g_malloc(sizeof(*data));
- data->job = job;
- data->fn = fn;
- data->opaque = opaque;
- job->deferred_to_main_loop = true;
-
- aio_bh_schedule_oneshot(qemu_get_aio_context(),
- job_defer_to_main_loop_bh, data);
-}
-
int job_finish_sync(Job *job, void (*finish)(Job *, Error **errp), Error
**errp)
{
Error *local_err = NULL;
--
2.17.1
- [Qemu-devel] [PULL 00/11] Block patches, Max Reitz, 2018/08/31
- Re: [Qemu-devel] [PULL 00/11] Block patches, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 09/11] block/backup: make function variables consistently named, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 10/11] jobs: remove ret argument to job_completed; privatize it, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 11/11] jobs: remove job_defer_to_main_loop,
Max Reitz <=
- [Qemu-devel] [PULL 07/11] block/mirror: utilize job_exit shim, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 08/11] jobs: utilize job_exit shim, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 04/11] jobs: canonize Error object, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 01/11] file-posix: Skip effectiveless OFD lock operations, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 06/11] block/commit: utilize job_exit shim, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 05/11] jobs: add exit shim, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 03/11] jobs: change start callback to run callback, Max Reitz, 2018/08/31
- [Qemu-devel] [PULL 02/11] tests: fix bdrv-drain leak, Max Reitz, 2018/08/31