Commit 8484d3fb authored by Alexander Yaworsky's avatar Alexander Yaworsky Committed by Alexandre Julliard

Proper finalization in StartServiceW.

parent 0e74f851
......@@ -876,6 +876,8 @@ StartServiceW( SC_HANDLE hService, DWORD dwNumServiceArgs,
HANDLE data,wait;
PROCESS_INFORMATION procinfo;
STARTUPINFOW startupinfo;
BOOL ret = FALSE;
TRACE("(%p,%ld,%p)\n",hService,dwNumServiceArgs,
lpServiceArgVectors);
......@@ -934,19 +936,27 @@ StartServiceW( SC_HANDLE hService, DWORD dwNumServiceArgs,
if(r == FALSE)
{
ERR("Couldn't start process\n");
/* ReleaseSemaphore(data, 1, NULL);
return FALSE; */
goto done;
}
CloseHandle( procinfo.hThread );
/* docs for StartServiceCtrlDispatcher say this should be 30 sec */
r = WaitForSingleObject(wait,30000);
if( WAIT_FAILED == r )
{
CloseHandle( procinfo.hProcess );
goto done;
}
ReleaseSemaphore(data, 1, NULL);
if( r == WAIT_FAILED)
return FALSE;
/* allright */
CloseHandle( procinfo.hProcess );
ret = TRUE;
return TRUE;
done:
CloseHandle( wait );
ReleaseSemaphore(data, 1, NULL);
CloseHandle( data );
return ret;
}
/******************************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment