X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dbus%2Fdbus-spawn-win.c;h=8ac837ed5aa1591fc045971ba4d97a12663e128d;hb=5df8c3db12590edd68e968975a335da9d0415e5a;hp=36df388c9f4f9e3eddc9baa9b7ef9e608d870538;hpb=6bded84c40a79c8c5fb35377920ac7dfcfef7d5d;p=platform%2Fupstream%2Fdbus.git diff --git a/dbus/dbus-spawn-win.c b/dbus/dbus-spawn-win.c index 36df388..8ac837e 100644 --- a/dbus/dbus-spawn-win.c +++ b/dbus/dbus-spawn-win.c @@ -81,8 +81,6 @@ struct DBusBabysitter DBusWatchList *watches; DBusWatch *sitter_watch; - DBusBabysitterFinishedFunc finished_cb; - void *finished_data; dbus_bool_t have_spawn_errno; int spawn_errno; @@ -156,27 +154,6 @@ _dbus_babysitter_ref (DBusBabysitter *sitter) return sitter; } -static void -close_socket_to_babysitter (DBusBabysitter *sitter) -{ - _dbus_verbose ("Closing babysitter\n"); - - if (sitter->sitter_watch != NULL) - { - _dbus_assert (sitter->watches != NULL); - _dbus_watch_list_remove_watch (sitter->watches, sitter->sitter_watch); - _dbus_watch_invalidate (sitter->sitter_watch); - _dbus_watch_unref (sitter->sitter_watch); - sitter->sitter_watch = NULL; - } - - if (sitter->socket_to_babysitter != -1) - { - _dbus_close_socket (sitter->socket_to_babysitter, NULL); - sitter->socket_to_babysitter = -1; - } -} - /** * Decrement the reference count on the babysitter object. * @@ -195,7 +172,11 @@ _dbus_babysitter_unref (DBusBabysitter *sitter) if (sitter->refcount == 0) { - close_socket_to_babysitter (sitter); + if (sitter->socket_to_babysitter != -1) + { + _dbus_close_socket (sitter->socket_to_babysitter, NULL); + sitter->socket_to_babysitter = -1; + } if (sitter->socket_to_main != -1) { @@ -391,15 +372,9 @@ handle_watch (DBusWatch *watch, */ PING(); - close_socket_to_babysitter (sitter); + _dbus_close_socket (sitter->socket_to_babysitter, NULL); PING(); - - if (_dbus_babysitter_get_child_exited (sitter) && - sitter->finished_cb != NULL) - { - sitter->finished_cb (sitter, sitter->finished_data); - sitter->finished_cb = NULL; - } + sitter->socket_to_babysitter = -1; return TRUE; } @@ -502,7 +477,8 @@ compose_string (char **strings, char separator) int n = 0; char *buf; char *p; - + const char *ptr; + if (!strings || !strings[0]) return 0; for (i = 0; strings[i]; i++) @@ -582,7 +558,7 @@ static DWORD __stdcall babysitter (void *parameter) { DBusBabysitter *sitter = (DBusBabysitter *) parameter; - + int fd; PING(); _dbus_babysitter_ref (sitter); @@ -692,12 +668,6 @@ _dbus_spawn_async_with_babysitter (DBusBabysitter **sitter_p, PING(); if (!_dbus_watch_list_add_watch (sitter->watches, sitter->sitter_watch)) { - /* we need to free it early so the destructor won't try to remove it - * without it having been added, which DBusLoop doesn't allow */ - _dbus_watch_invalidate (sitter->sitter_watch); - _dbus_watch_unref (sitter->sitter_watch); - sitter->sitter_watch = NULL; - _DBUS_SET_OOM (error); goto out0; } @@ -743,15 +713,6 @@ out0: return FALSE; } -void -_dbus_babysitter_set_result_function (DBusBabysitter *sitter, - DBusBabysitterFinishedFunc finished, - void *user_data) -{ - sitter->finished_cb = finished; - sitter->finished_data = user_data; -} - #ifdef DBUS_BUILD_TESTS #define LIVE_CHILDREN(sitter) ((sitter)->child_handle != NULL)