|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH xeniface 2/2] Ack actionable "control/shutdown" requests as soon as possible
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
src/xenagent/service.cpp | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
index 46250e8..6b042c4 100644
--- a/src/xenagent/service.cpp
+++ b/src/xenagent/service.cpp
@@ -187,12 +187,13 @@ bool CXenIfaceCreator::CheckShutdown()
if (!m_device->StoreRead("control/shutdown", type))
return false;
- CXenAgent::Log("Shutdown(%ws) = %s\n", m_device->Path(), type.c_str());
+ if (type != "")
+ CXenAgent::Log("Shutdown(%ws) = '%s'\n", m_device->Path(),
type.c_str());
if (type == "poweroff") {
+ m_device->StoreWrite("control/shutdown", "");
m_agent.EventLog(EVENT_XENUSER_POWEROFF);
- m_device->StoreWrite("control/shutdown", "");
AcquireShutdownPrivilege();
#pragma warning(suppress:28159) /* Consider using a design alternative...
Rearchitect to avoid Reboot */
if (!InitiateSystemShutdownEx(NULL, NULL, 0, TRUE, FALSE,
@@ -203,9 +204,9 @@ bool CXenIfaceCreator::CheckShutdown()
}
return true;
} else if (type == "reboot") {
+ m_device->StoreWrite("control/shutdown", "");
m_agent.EventLog(EVENT_XENUSER_REBOOT);
- m_device->StoreWrite("control/shutdown", "");
AcquireShutdownPrivilege();
#pragma warning(suppress:28159) /* Consider using a design alternative...
Rearchitect to avoid Reboot */
if (!InitiateSystemShutdownEx(NULL, NULL, 0, TRUE, TRUE,
@@ -216,18 +217,18 @@ bool CXenIfaceCreator::CheckShutdown()
}
return true;
} else if (type == "s4") {
+ m_device->StoreWrite("control/shutdown", "");
m_agent.EventLog(EVENT_XENUSER_S4);
- m_device->StoreWrite("control/shutdown", "");
AcquireShutdownPrivilege();
if (!SetSystemPowerState(FALSE, FALSE)) {
CXenAgent::Log("SetSystemPowerState failed %08x\n",
GetLastError());
}
return true;
} else if (type == "s3") {
+ m_device->StoreWrite("control/shutdown", "");
m_agent.EventLog(EVENT_XENUSER_S3);
- m_device->StoreWrite("control/shutdown", "");
AcquireShutdownPrivilege();
if (!SetSuspendState(FALSE, TRUE, FALSE)) {
CXenAgent::Log("SetSuspendState failed %08x\n", GetLastError());
--
2.5.3
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |