From a8cf35d0e4333d1ca0b694602629c7dc7408944d Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 19 Aug 2018 14:31:43 +0200 Subject: [PATCH] [SYSSETUP] SetupStartService: Remove the wait loop CORE-14909 --- dll/win32/syssetup/install.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/dll/win32/syssetup/install.c b/dll/win32/syssetup/install.c index e9b5745def7..63fa4a28e9b 100644 --- a/dll/win32/syssetup/install.c +++ b/dll/win32/syssetup/install.c @@ -1508,9 +1508,7 @@ SetupStartService( { SC_HANDLE hManager = NULL; SC_HANDLE hService = NULL; - SERVICE_STATUS ServiceStatus; DWORD dwError = ERROR_SUCCESS; - DWORD dwRetries = 0; hManager = OpenSCManagerW(NULL, NULL, @@ -1523,7 +1521,7 @@ SetupStartService( hService = OpenServiceW(hManager, lpServiceName, - SERVICE_START | (bWait) ? SERVICE_QUERY_STATUS : 0); + SERVICE_START); if (hService == NULL) { dwError = GetLastError(); @@ -1533,27 +1531,7 @@ SetupStartService( if (!StartService(hService, 0, NULL)) { dwError = GetLastError(); - if (dwError != ERROR_SERVICE_ALREADY_RUNNING) - goto done; - - if (bWait) - { - for (;;) - { - if (!QueryServiceStatus(hService, &ServiceStatus)) - break; - - if (ServiceStatus.dwCurrentState != SERVICE_START_PENDING) - break; - - if (dwRetries == 30) - break; - - dwRetries++; - - Sleep(5000); - } - } + goto done; } done: