[Spice-devel] [vdagent-win PATCH v5 5/6] vdagent: Add a comment around WinSta0_DesktopSwitch event usage
Frediano Ziglio
fziglio at redhat.com
Mon Jul 9 08:51:43 UTC 2018
Multiple times while I was reading this code was not clear why the
sinchronization of this event was not done in the main event loop.
Also document why we want to use it not relying just on
WTSRegisterSessionNotification and WM_WTSSESSION_CHANGE.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
vdagent/vdagent.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp
index 9a40388..e0923be 100644
--- a/vdagent/vdagent.cpp
+++ b/vdagent/vdagent.cpp
@@ -229,6 +229,11 @@ VDAgent::~VDAgent()
DWORD WINAPI VDAgent::event_thread_proc(LPVOID param)
{
VDAgent *agent = static_cast<VDAgent *>(param);
+ // This event is monitored in a separate thread to avoid loosing
+ // events as the event is signaled with PulseEvent to wake up all
+ // thread waiting for it.
+ // This event allows to detect desktop switches which do not
+ // change sessions like pressing Ctrl-Alt-Delete.
HANDLE desktop_event = OpenEvent(SYNCHRONIZE, FALSE, L"WinSta0_DesktopSwitch");
if (!desktop_event) {
vd_printf("OpenEvent() failed: %lu", GetLastError());
--
2.17.1
More information about the Spice-devel
mailing list