[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 3/3] qemu-coroutine-sleep: drop CoSleepCB
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 3/3] qemu-coroutine-sleep: drop CoSleepCB |
Date: |
Thu, 24 Jan 2019 10:29:00 +0000 |
From: Vladimir Sementsov-Ogievskiy <address@hidden>
Drop CoSleepCB structure. It's actually unused.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
util/qemu-coroutine-sleep.c | 27 ++++++++++-----------------
1 file changed, 10 insertions(+), 17 deletions(-)
diff --git a/util/qemu-coroutine-sleep.c b/util/qemu-coroutine-sleep.c
index afb678fbe5..4bfdd30cbf 100644
--- a/util/qemu-coroutine-sleep.c
+++ b/util/qemu-coroutine-sleep.c
@@ -17,38 +17,31 @@
#include "qemu/timer.h"
#include "block/aio.h"
-typedef struct CoSleepCB {
- QEMUTimer *ts;
- Coroutine *co;
-} CoSleepCB;
-
static void co_sleep_cb(void *opaque)
{
- CoSleepCB *sleep_cb = opaque;
+ Coroutine *co = opaque;
/* Write of schedule protected by barrier write in aio_co_schedule */
- atomic_set(&sleep_cb->co->scheduled, NULL);
- aio_co_wake(sleep_cb->co);
+ atomic_set(&co->scheduled, NULL);
+ aio_co_wake(co);
}
void coroutine_fn qemu_co_sleep_ns(QEMUClockType type, int64_t ns)
{
AioContext *ctx = qemu_get_current_aio_context();
- CoSleepCB sleep_cb = {
- .co = qemu_coroutine_self(),
- };
+ QEMUTimer *ts;
+ Coroutine *co = qemu_coroutine_self();
- const char *scheduled = atomic_cmpxchg(&sleep_cb.co->scheduled, NULL,
- __func__);
+ const char *scheduled = atomic_cmpxchg(&co->scheduled, NULL, __func__);
if (scheduled) {
fprintf(stderr,
"%s: Co-routine was already scheduled in '%s'\n",
__func__, scheduled);
abort();
}
- sleep_cb.ts = aio_timer_new(ctx, type, SCALE_NS, co_sleep_cb, &sleep_cb);
- timer_mod(sleep_cb.ts, qemu_clock_get_ns(type) + ns);
+ ts = aio_timer_new(ctx, type, SCALE_NS, co_sleep_cb, co);
+ timer_mod(ts, qemu_clock_get_ns(type) + ns);
qemu_coroutine_yield();
- timer_del(sleep_cb.ts);
- timer_free(sleep_cb.ts);
+ timer_del(ts);
+ timer_free(ts);
}
--
2.20.1