Nikolay Sivov : services: Remove loop that's not really used anymore ( Coverity).

Alexandre Julliard julliard at winehq.org
Mon Apr 21 12:36:54 CDT 2014


Module: wine
Branch: master
Commit: fdbd8ffffc9a807c0089ff625a6bb5ab6160540e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fdbd8ffffc9a807c0089ff625a6bb5ab6160540e

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sat Apr 19 13:55:21 2014 +0400

services: Remove loop that's not really used anymore (Coverity).

---

 programs/services/services.c |   41 +++++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 22 deletions(-)

diff --git a/programs/services/services.c b/programs/services/services.c
index f6de89d..2fe3806 100644
--- a/programs/services/services.c
+++ b/programs/services/services.c
@@ -695,32 +695,29 @@ static DWORD service_start_process(struct service_entry *service_entry, HANDLE *
 
 static DWORD service_wait_for_startup(struct service_entry *service_entry, HANDLE process_handle)
 {
-    WINE_TRACE("%p\n", service_entry);
+    HANDLE handles[2] = { service_entry->status_changed_event, process_handle };
+    DWORD state, ret;
 
-    for (;;)
-    {
-        DWORD dwCurrentStatus;
-        HANDLE handles[2] = { service_entry->status_changed_event, process_handle };
-        DWORD ret;
-        ret = WaitForMultipleObjects( 2, handles, FALSE, service_pipe_timeout );
-        if (ret != WAIT_OBJECT_0)
-            return ERROR_SERVICE_REQUEST_TIMEOUT;
-        service_lock_shared(service_entry);
-        dwCurrentStatus = service_entry->status.dwCurrentState;
-        service_unlock(service_entry);
-        if (dwCurrentStatus == SERVICE_START_PENDING)
-        {
-            WINE_TRACE("Service changed its status to SERVICE_START_PENDING\n");
-            return ERROR_SUCCESS;
-        }
-        else if (dwCurrentStatus == SERVICE_RUNNING)
-        {
-            WINE_TRACE("Service started successfully\n");
-            return ERROR_SUCCESS;
-        }
+    WINE_TRACE("%p\n", service_entry);
 
+    ret = WaitForMultipleObjects( 2, handles, FALSE, service_pipe_timeout );
+    if (ret != WAIT_OBJECT_0)
         return ERROR_SERVICE_REQUEST_TIMEOUT;
+    service_lock_shared(service_entry);
+    state = service_entry->status.dwCurrentState;
+    service_unlock(service_entry);
+    if (state == SERVICE_START_PENDING)
+    {
+        WINE_TRACE("Service state changed to SERVICE_START_PENDING\n");
+        return ERROR_SUCCESS;
     }
+    else if (state == SERVICE_RUNNING)
+    {
+        WINE_TRACE("Service started successfully\n");
+        return ERROR_SUCCESS;
+    }
+
+    return ERROR_SERVICE_REQUEST_TIMEOUT;
 }
 
 /******************************************************************************




More information about the wine-cvs mailing list