mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/win32-vd_agent
synced 2026-01-08 20:57:41 +00:00
Pass class pointer using thread parameter
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Victor Toso <victortoso@redhat.com>
This commit is contained in:
parent
2ab513267b
commit
f96d575659
@ -247,16 +247,17 @@ VDAgent::~VDAgent()
|
||||
|
||||
DWORD WINAPI VDAgent::event_thread_proc(LPVOID param)
|
||||
{
|
||||
VDAgent *agent = static_cast<VDAgent *>(param);
|
||||
HANDLE desktop_event = OpenEvent(SYNCHRONIZE, FALSE, L"WinSta0_DesktopSwitch");
|
||||
if (!desktop_event) {
|
||||
vd_printf("OpenEvent() failed: %lu", GetLastError());
|
||||
return 1;
|
||||
}
|
||||
while (_singleton->_running) {
|
||||
while (agent->_running) {
|
||||
DWORD wait_ret = WaitForSingleObject(desktop_event, INFINITE);
|
||||
switch (wait_ret) {
|
||||
case WAIT_OBJECT_0:
|
||||
_singleton->set_control_event(CONTROL_DESKTOP_SWITCH);
|
||||
agent->set_control_event(CONTROL_DESKTOP_SWITCH);
|
||||
break;
|
||||
case WAIT_TIMEOUT:
|
||||
default:
|
||||
@ -332,7 +333,7 @@ bool VDAgent::run()
|
||||
return false;
|
||||
}
|
||||
_running = true;
|
||||
event_thread = CreateThread(NULL, 0, event_thread_proc, NULL, 0, &event_thread_id);
|
||||
event_thread = CreateThread(NULL, 0, event_thread_proc, this, 0, &event_thread_id);
|
||||
if (!event_thread) {
|
||||
vd_printf("CreateThread() failed: %lu", GetLastError());
|
||||
cleanup();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user