From: Marcel Holtmann Date: Fri, 17 Jul 2009 10:08:34 +0000 (+0200) Subject: Fix the reference counting for revived services X-Git-Tag: 0.26~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a65f4cc4c089af1929e98627c004506246084004;p=platform%2Fupstream%2Fconnman.git Fix the reference counting for revived services --- diff --git a/src/service.c b/src/service.c index d389107..4d1ebaa 100644 --- a/src/service.c +++ b/src/service.c @@ -1589,9 +1589,13 @@ struct connman_service *__connman_service_create_from_network(struct connman_net service = __connman_service_lookup_from_network(network); if (service != NULL) { - if (service->timeout > 0 && service->pending == NULL) { - g_source_remove(service->timeout); - service->timeout = 0; + if (g_atomic_int_get(&service->refcount) == 0) { + if (service->timeout > 0) { + g_source_remove(service->timeout); + service->timeout = 0; + } + + connman_service_ref(service); set_idle(service); }