Sebastian Lackner : services: Hold an additional process reference while waiting for startup.
Module: wine Branch: master Commit: 049ac1d827c5e56e6256998564fa3b6170ceb81d URL: http://source.winehq.org/git/wine.git/?a=commit;h=049ac1d827c5e56e6256998564... Author: Sebastian Lackner <sebastian(a)fds-team.de> Date: Thu Aug 11 07:22:55 2016 +0200 services: Hold an additional process reference while waiting for startup. Signed-off-by: Sebastian Lackner <sebastian(a)fds-team.de> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/services/services.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/programs/services/services.c b/programs/services/services.c index b0d008d..f7a2725 100644 --- a/programs/services/services.c +++ b/programs/services/services.c @@ -778,7 +778,7 @@ static DWORD service_start_process(struct service_entry *service_entry, struct p service_entry->status.dwCurrentState = SERVICE_START_PENDING; scmdatabase_add_process(service_entry->db, process); - service_entry->process = process; + service_entry->process = grab_process(process); service_unlock(service_entry); @@ -788,6 +788,7 @@ static DWORD service_start_process(struct service_entry *service_entry, struct p { err = GetLastError(); process_terminate(process); + release_process(process); return err; } @@ -916,6 +917,8 @@ DWORD service_start(struct service_entry *service, DWORD service_argc, LPCWSTR * ReleaseMutex(process->control_mutex); else process_terminate(process); + + release_process(process); } scmdatabase_unlock_startup(service->db);
participants (1)
-
Alexandre Julliard