]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
dbus-spawn-win.c: Don't wait for babysitter thread to start
authorRalf Habacker <ralf.habacker@freenet.de>
Fri, 21 Dec 2018 16:03:27 +0000 (17:03 +0100)
committerRalf <ralf@linux1.fritz.box>
Sat, 5 Jan 2019 10:41:58 +0000 (11:41 +0100)
Now that we start the spawned program from the main thread, there
is no need to wait for it before dereferencing `sitter->child_handle`.

Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de>
dbus/dbus-spawn-win.c

index 9cfdf478fa38c0d6b78b419516e8f6ff709a6c42..1cbe84cb8ab65c9e4fab0a623a74fe6b14584417 100644 (file)
@@ -61,9 +61,6 @@
 struct DBusBabysitter
   {
     DBusAtomic refcount;
-
-    HANDLE start_sync_event;
-
     char *log_name;
 
     HANDLE thread_handle;
@@ -110,13 +107,6 @@ _dbus_babysitter_new (void)
 
   _dbus_babysitter_trace_ref (sitter, old_refcount, old_refcount+1, __FUNCTION__);
 
-  sitter->start_sync_event = CreateEvent (NULL, FALSE, FALSE, NULL);
-  if (sitter->start_sync_event == NULL)
-    {
-      _dbus_babysitter_unref (sitter);
-      return NULL;
-    }
-
   sitter->child_handle = NULL;
 
   sitter->socket_to_babysitter = sitter->socket_to_main = _dbus_socket_get_invalid ();
@@ -218,13 +208,6 @@ _dbus_babysitter_unref (DBusBabysitter *sitter)
       if (sitter->watches)
         _dbus_watch_list_free (sitter->watches);
 
-      if (sitter->start_sync_event != NULL)
-        {
-          PING();
-          CloseHandle (sitter->start_sync_event);
-          sitter->start_sync_event = NULL;
-        }
-
       if (sitter->thread_handle)
         {
           CloseHandle (sitter->thread_handle);
@@ -570,8 +553,6 @@ babysitter (void *parameter)
   DBusBabysitter *sitter = (DBusBabysitter *) parameter;
 
   PING();
-  SetEvent (sitter->start_sync_event);
-
   if (sitter->child_handle != NULL)
     {
       DWORD status;
@@ -716,9 +697,6 @@ _dbus_spawn_async_with_babysitter (DBusBabysitter           **sitter_p,
       goto out0;
     }
 
-  PING();
-  WaitForSingleObject (sitter->start_sync_event, INFINITE);
-
   PING();
   if (sitter_p != NULL)
     *sitter_p = sitter;