[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/9] main-loop: refactor qemu_system_shutdown_reques
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [PATCH 5/9] main-loop: refactor qemu_system_shutdown_request() |
Date: |
Wed, 20 Feb 2013 09:32:45 -0600 |
N.B. no Signed-off-by because this breaks Xen
---
vl.c | 20 +++++---------------
1 file changed, 5 insertions(+), 15 deletions(-)
diff --git a/vl.c b/vl.c
index 4810178..1a63986 100644
--- a/vl.c
+++ b/vl.c
@@ -1697,7 +1697,7 @@ typedef struct QEMUResetEntry {
static QTAILQ_HEAD(reset_handlers, QEMUResetEntry) reset_handlers =
QTAILQ_HEAD_INITIALIZER(reset_handlers);
static int reset_requested;
-static int shutdown_requested, shutdown_signal = -1;
+static int shutdown_signal = -1;
static pid_t shutdown_pid;
static int powerdown_requested;
static int wakeup_requested;
@@ -1712,7 +1712,7 @@ static RunState vmstop_requested = RUN_STATE_MAX;
int qemu_shutdown_requested_get(void)
{
- return shutdown_requested;
+ return 0; // FIXME
}
int qemu_reset_requested_get(void)
@@ -1720,13 +1720,6 @@ int qemu_reset_requested_get(void)
return reset_requested;
}
-static int qemu_shutdown_requested(void)
-{
- int r = shutdown_requested;
- shutdown_requested = 0;
- return r;
-}
-
static void qemu_kill_report(void)
{
if (!qtest_enabled() && shutdown_signal != -1) {
@@ -1891,7 +1884,7 @@ void qemu_system_killed(int signal, pid_t pid)
qemu_system_shutdown_request();
}
-static void qemu_system_shutdown(void)
+static gboolean qemu_system_shutdown(gpointer data)
{
qemu_kill_report();
monitor_protocol_event(QEVENT_SHUTDOWN, NULL);
@@ -1900,13 +1893,13 @@ static void qemu_system_shutdown(void)
} else {
main_loop_quit();
}
+ return FALSE;
}
void qemu_system_shutdown_request(void)
{
- shutdown_requested = 1;
cpu_stop_current();
- qemu_notify_event();
+ g_idle_add(qemu_system_shutdown, NULL);
}
static void qemu_system_powerdown(void)
@@ -1946,9 +1939,6 @@ void qemu_system_vmstop_request(RunState state)
static void main_loop_junk(void)
{
RunState r;
- if (qemu_shutdown_requested()) {
- qemu_system_shutdown();
- }
if (qemu_reset_requested()) {
pause_all_vcpus();
cpu_synchronize_all_states();
--
1.8.0
- Re: [Qemu-devel] [PATCH 1/9] main-loop: introduce a main_loop_quit() function, (continued)
[Qemu-devel] [PATCH 6/9] main-loop: refactor qemu_system_reset_request(), Anthony Liguori, 2013/02/20
[Qemu-devel] [PATCH 5/9] main-loop: refactor qemu_system_shutdown_request(),
Anthony Liguori <=
[Qemu-devel] [PATCH 8/9] main-loop: refactor qemu_system_powerdown_request, Anthony Liguori, 2013/02/20
[Qemu-devel] [PATCH 7/9] main-loop: refactor qemu_system_wakeup_request(), Anthony Liguori, 2013/02/20
[Qemu-devel] [PATCH 9/9] main-loop: refactor qemu_system_vmstop_request(), Anthony Liguori, 2013/02/20