103 lines
3.1 KiB
Diff
103 lines
3.1 KiB
Diff
From 2ae3bd5b9c9548c096e13f5de42855680a63b692 Mon Sep 17 00:00:00 2001
|
|
From: Frediano Ziglio <fziglio@redhat.com>
|
|
Date: Sun, 1 Jul 2018 06:40:48 +0100
|
|
Subject: [PATCH 40/43] Use destructor instead of cleanup function
|
|
|
|
More C++ style.
|
|
Also avoids missing cleanup calls.
|
|
|
|
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
|
|
---
|
|
vdagent/vdagent.cpp | 17 ++++-------------
|
|
1 file changed, 4 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp
|
|
index 69d61da..306bfbd 100644
|
|
--- a/vdagent/vdagent.cpp
|
|
+++ b/vdagent/vdagent.cpp
|
|
@@ -116,7 +116,6 @@ private:
|
|
void load_display_setting();
|
|
bool send_announce_capabilities(bool request);
|
|
void cleanup_in_msg();
|
|
- void cleanup();
|
|
bool has_capability(unsigned int capability) const {
|
|
return VD_AGENT_HAS_CAPABILITY(_client_caps.begin(), _client_caps.size(),
|
|
capability);
|
|
@@ -223,6 +222,8 @@ VDAgent::VDAgent()
|
|
|
|
VDAgent::~VDAgent()
|
|
{
|
|
+ FreeLibrary(_user_lib);
|
|
+ close_vio_serial();
|
|
CloseHandle(_stop_event);
|
|
CloseHandle(_control_event);
|
|
delete _log;
|
|
@@ -257,6 +258,8 @@ bool VDAgent::run()
|
|
HANDLE event_thread;
|
|
WNDCLASS wcls;
|
|
|
|
+ close_vio_serial();
|
|
+
|
|
if (!ProcessIdToSessionId(GetCurrentProcessId(), &session_id)) {
|
|
vd_printf("ProcessIdToSessionId failed %lu", GetLastError());
|
|
return false;
|
|
@@ -289,7 +292,6 @@ bool VDAgent::run()
|
|
_control_event = CreateEvent(NULL, FALSE, FALSE, NULL);
|
|
if (!_control_event) {
|
|
vd_printf("CreateEvent() failed: %lu", GetLastError());
|
|
- cleanup();
|
|
return false;
|
|
}
|
|
ResetEvent(_control_event);
|
|
@@ -302,7 +304,6 @@ bool VDAgent::run()
|
|
wcls.lpszClassName = VD_AGENT_WINCLASS_NAME;
|
|
if (!RegisterClass(&wcls)) {
|
|
vd_printf("RegisterClass() failed: %lu", GetLastError());
|
|
- cleanup();
|
|
return false;
|
|
}
|
|
_desktop_layout.reset(new DesktopLayout());
|
|
@@ -310,20 +311,17 @@ bool VDAgent::run()
|
|
vd_printf("No QXL devices!");
|
|
}
|
|
if (!init_vio_serial()) {
|
|
- cleanup();
|
|
return false;
|
|
}
|
|
if (!ReadFileEx(_vio_serial, _read_buf, sizeof(VDIChunk), &_read_overlapped, read_completion) &&
|
|
GetLastError() != ERROR_IO_PENDING) {
|
|
vd_printf("vio_serial read error %lu", GetLastError());
|
|
- cleanup();
|
|
return false;
|
|
}
|
|
_running = true;
|
|
event_thread = CreateThread(NULL, 0, event_thread_proc, this, 0, NULL);
|
|
if (!event_thread) {
|
|
vd_printf("CreateThread() failed: %lu", GetLastError());
|
|
- cleanup();
|
|
return false;
|
|
}
|
|
send_announce_capabilities(true);
|
|
@@ -337,16 +335,9 @@ bool VDAgent::run()
|
|
}
|
|
vd_printf("Agent stopped");
|
|
CloseHandle(event_thread);
|
|
- cleanup();
|
|
return true;
|
|
}
|
|
|
|
-void VDAgent::cleanup()
|
|
-{
|
|
- FreeLibrary(_user_lib);
|
|
- close_vio_serial();
|
|
-}
|
|
-
|
|
void VDAgent::set_control_event(control_command_t control_command)
|
|
{
|
|
MutexLocker lock(_control_mutex);
|
|
--
|
|
2.17.1
|
|
|