|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 1/3] Prevent a xenagent timeout on S3/S4 transition.
Prevent a xenagent timeout (and live kernel dump) on S3/S4 transition by
changing CXenIfaceCreator::Log to use TryEnterCriticalSection.
Otherwise, a timeout occurs when the service control handler fails to
return due to attempting to enter a critical section object that the
main service thread already owns while responding to the
control/shutdown xenstore watch.
Signed-off-by: Troy Crosley <troycrosley@xxxxxxxxx>
---
src/xenagent/service.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
index 4d62e09..e595093 100644
--- a/src/xenagent/service.cpp
+++ b/src/xenagent/service.cpp
@@ -107,9 +107,9 @@ void CXenIfaceCreator::OnPowerEvent(DWORD evt, LPVOID data)
void CXenIfaceCreator::Log(const char* message)
{
// if possible, send to xeniface to forward to logs
- CCritSec crit(&m_crit);
- if (m_device) {
+ if (TryEnterCriticalSection(&m_crit) && m_device) {
m_device->Log(message);
+ LeaveCriticalSection(&m_crit);
}
}
--
2.20.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |