[vdagent-win PATCH 3/4] Use process handle to mark agent existence

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Avoid extra field that could be out of sync.
Having a valid process handle is enough.

Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 vdservice/vdservice.cpp | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/vdservice/vdservice.cpp b/vdservice/vdservice.cpp
index 3de8111..5caed39 100644
--- a/vdservice/vdservice.cpp
+++ b/vdservice/vdservice.cpp
@@ -85,6 +85,7 @@ private:
             return _events_count - 1;
         }
     }
+    bool agent_alive() const { return _agent_proc_info.hProcess != NULL; }
 private:
     SERVICE_STATUS _status;
     SERVICE_STATUS_HANDLE _status_handle;
@@ -101,7 +102,6 @@ private:
     DWORD _last_agent_restart_time;
     int _agent_restarts;
     int _system_version;
-    bool _agent_alive;
     bool _running;
     VDLog* _log;
     unsigned _events_count;
@@ -114,7 +114,6 @@ VDService::VDService()
     , _session_id (0)
     , _last_agent_restart_time (0)
     , _agent_restarts (0)
-    , _agent_alive (false)
     , _running (false)
     , _log (NULL)
     , _events_count(0)
@@ -428,7 +427,7 @@ bool VDService::execute()
                         WAIT_OBJECT_0) {
                     handle_control_event();
                 }
-                if (_running && !_agent_alive) {
+                if (_running && !agent_alive()) {
                     restart_agent(false);
                 }
             }
@@ -731,7 +730,6 @@ bool VDService::launch_agent()
     }
     CloseHandle(_agent_proc_info.hThread);
     _agent_proc_info.hThread = NULL;
-    _agent_alive = true;
     return true;
 }
 
@@ -742,10 +740,9 @@ bool VDService::kill_agent()
     HANDLE proc_handle;
     bool ret = true;
 
-    if (!_agent_alive) {
+    if (!agent_alive()) {
         return true;
     }
-    _agent_alive = false;
     proc_handle = _agent_proc_info.hProcess;
     _agent_proc_info.hProcess = 0;
     SetEvent(_agent_stop_event);
-- 
2.9.4

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]