From: Marcel Holtmann Date: Tue, 2 Dec 2008 13:55:28 +0000 (+0100) Subject: Remove usage of GStaticMutex since it causes compiler problems X-Git-Tag: 0.1~56 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eed198d63d2396eb77f63f01460ecaab3508653e;p=platform%2Fupstream%2Fconnman.git Remove usage of GStaticMutex since it causes compiler problems --- diff --git a/include/element.h b/include/element.h index 0a96397..85b9b06 100644 --- a/include/element.h +++ b/include/element.h @@ -84,7 +84,6 @@ struct connman_driver; struct connman_element { gint refcount; - GStaticMutex mutex; gint index; gchar *name; gchar *path; @@ -117,9 +116,6 @@ struct connman_element { } wifi; }; -#define connman_element_lock(element) g_static_mutex_lock(&(element)->mutex) -#define connman_element_unlock(element) g_static_mutex_unlock(&(element)->mutex) - extern struct connman_element *connman_element_create(const char *name); extern struct connman_element *connman_element_ref(struct connman_element *element); extern void connman_element_unref(struct connman_element *element); diff --git a/plugins/dhclient.c b/plugins/dhclient.c index 342e6d7..7249773 100644 --- a/plugins/dhclient.c +++ b/plugins/dhclient.c @@ -45,7 +45,6 @@ struct dhclient_task { struct connman_element *element; }; -static GStaticMutex task_mutex = G_STATIC_MUTEX_INIT; static GSList *task_list = NULL; static struct dhclient_task *find_task_by_pid(GPid pid) @@ -113,9 +112,7 @@ static void task_died(GPid pid, gint status, gpointer data) g_spawn_close_pid(pid); task->pid = 0; - g_static_mutex_lock(&task_mutex); task_list = g_slist_remove(task_list, task); - g_static_mutex_unlock(&task_mutex); unlink_task(task); @@ -186,9 +183,7 @@ static int dhclient_probe(struct connman_element *element) return -1; } - g_static_mutex_lock(&task_mutex); task_list = g_slist_append(task_list, task); - g_static_mutex_unlock(&task_mutex); g_child_watch_add(task->pid, task_died, task); @@ -203,14 +198,10 @@ static void dhclient_remove(struct connman_element *element) DBG("element %p name %s", element, element->name); - g_static_mutex_lock(&task_mutex); - task = find_task_by_index(element->index); if (task != NULL) task_list = g_slist_remove(task_list, task); - g_static_mutex_unlock(&task_mutex); - if (task == NULL) return; @@ -247,9 +238,7 @@ static DBusHandlerResult dhclient_filter(DBusConnection *conn, DBG("change %d to %s", pid, text); - g_static_mutex_lock(&task_mutex); task = find_task_by_pid(pid); - g_static_mutex_unlock(&task_mutex); if (task == NULL) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; @@ -351,8 +340,6 @@ static void dhclient_exit(void) { GSList *list; - g_static_mutex_lock(&task_mutex); - for (list = task_list; list; list = list->next) { struct dhclient_task *task = list->data; @@ -362,8 +349,6 @@ static void dhclient_exit(void) unlink_task(task); } - g_static_mutex_unlock(&task_mutex); - g_slist_free(task_list); connman_driver_unregister(&dhclient_driver); diff --git a/plugins/ethernet.c b/plugins/ethernet.c index fb8afb4..d6861f8 100644 --- a/plugins/ethernet.c +++ b/plugins/ethernet.c @@ -41,7 +41,6 @@ struct ethernet_data { unsigned flags; }; -static GStaticMutex ethernet_mutex = G_STATIC_MUTEX_INIT; static GSList *ethernet_list = NULL; static void ethernet_newlink(unsigned short type, int index, @@ -51,8 +50,6 @@ static void ethernet_newlink(unsigned short type, int index, DBG("index %d flags %ld change %ld", index, flags, change); - g_static_mutex_lock(ðernet_mutex); - for (list = ethernet_list; list; list = list->next) { struct connman_element *element = list->data; struct connman_element *netdev; @@ -87,8 +84,6 @@ static void ethernet_newlink(unsigned short type, int index, connman_element_unregister_children(element); } } - - g_static_mutex_unlock(ðernet_mutex); } static struct connman_rtnl ethernet_rtnl = { @@ -192,9 +187,7 @@ static int ethernet_probe(struct connman_element *element) if (ethernet == NULL) return -ENOMEM; - g_static_mutex_lock(ðernet_mutex); ethernet_list = g_slist_append(ethernet_list, element); - g_static_mutex_unlock(ðernet_mutex); connman_element_set_data(element, ethernet); @@ -217,9 +210,7 @@ static void ethernet_remove(struct connman_element *element) iface_down(ethernet); - g_static_mutex_lock(ðernet_mutex); ethernet_list = g_slist_remove(ethernet_list, element); - g_static_mutex_unlock(ðernet_mutex); g_free(ethernet); } diff --git a/plugins/rtnllink.c b/plugins/rtnllink.c index 14bb343..094547d 100644 --- a/plugins/rtnllink.c +++ b/plugins/rtnllink.c @@ -39,7 +39,6 @@ #include "inet.h" -static GStaticMutex device_mutex = G_STATIC_MUTEX_INIT; static GSList *device_list = NULL; static void rtnllink_newlink(unsigned short type, int index, @@ -53,8 +52,6 @@ static void rtnllink_newlink(unsigned short type, int index, DBG("index %d", index); - g_static_mutex_lock(&device_mutex); - for (list = device_list; list; list = list->next) { struct connman_element *device = list->data; @@ -64,8 +61,6 @@ static void rtnllink_newlink(unsigned short type, int index, } } - g_static_mutex_unlock(&device_mutex); - if (exists == TRUE) return; @@ -113,12 +108,8 @@ static void rtnllink_newlink(unsigned short type, int index, device->index = index; device->name = name; - g_static_mutex_lock(&device_mutex); - connman_element_register(device, NULL); device_list = g_slist_append(device_list, device); - - g_static_mutex_unlock(&device_mutex); } static void rtnllink_dellink(unsigned short type, int index, @@ -128,8 +119,6 @@ static void rtnllink_dellink(unsigned short type, int index, DBG("index %d", index); - g_static_mutex_lock(&device_mutex); - for (list = device_list; list; list = list->next) { struct connman_element *device = list->data; @@ -140,8 +129,6 @@ static void rtnllink_dellink(unsigned short type, int index, break; } } - - g_static_mutex_unlock(&device_mutex); } static struct connman_rtnl rtnllink_rtnl = { @@ -169,8 +156,6 @@ static void rtnllink_exit(void) connman_rtnl_unregister(&rtnllink_rtnl); - g_static_mutex_lock(&device_mutex); - for (list = device_list; list; list = list->next) { struct connman_element *device = list->data; @@ -180,8 +165,6 @@ static void rtnllink_exit(void) g_slist_free(device_list); device_list = NULL; - - g_static_mutex_unlock(&device_mutex); } CONNMAN_PLUGIN_DEFINE("rtnllink", "RTNL link detection plugin", VERSION, diff --git a/plugins/supplicant.c b/plugins/supplicant.c index 260d24f..243ec1b 100644 --- a/plugins/supplicant.c +++ b/plugins/supplicant.c @@ -49,7 +49,6 @@ struct supplicant_task { enum supplicant_state state; }; -static GStaticMutex task_mutex = G_STATIC_MUTEX_INIT; static GSList *task_list = NULL; static DBusConnection *connection; @@ -931,9 +930,7 @@ int __supplicant_start(struct connman_element *element, task->created = FALSE; task->state = STATE_INACTIVE; - g_static_mutex_lock(&task_mutex); task_list = g_slist_append(task_list, task); - g_static_mutex_unlock(&task_mutex); err = get_interface(task); if (err < 0) { @@ -961,9 +958,7 @@ int __supplicant_stop(struct connman_element *element) if (task == NULL) return -ENODEV; - g_static_mutex_lock(&task_mutex); task_list = g_slist_remove(task_list, task); - g_static_mutex_unlock(&task_mutex); disable_network(task); diff --git a/plugins/wifi.c b/plugins/wifi.c index f175494..c8b7e0a 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -42,7 +42,6 @@ #include "supplicant.h" struct wifi_data { - GStaticMutex mutex; GSList *list; gchar *identifier; }; @@ -190,8 +189,6 @@ static void scan_result(struct connman_element *parent, temp[i] = g_ascii_tolower(temp[i]); } - g_static_mutex_lock(&data->mutex); - element = find_element(data, network->identifier); if (element == NULL) { element = connman_element_create(temp); @@ -210,8 +207,6 @@ static void scan_result(struct connman_element *parent, connman_element_register(element, parent); } - g_static_mutex_unlock(&data->mutex); - g_free(temp); } @@ -230,8 +225,6 @@ static int wifi_probe(struct connman_element *element) if (data == NULL) return -ENOMEM; - g_static_mutex_init(&data->mutex); - connman_element_set_data(element, data); return 0; @@ -282,8 +275,6 @@ static int wifi_disable(struct connman_element *element) __supplicant_disconnect(element); - g_static_mutex_lock(&data->mutex); - for (list = data->list; list; list = list->next) { struct connman_element *network = list->data; @@ -293,8 +284,6 @@ static int wifi_disable(struct connman_element *element) g_slist_free(data->list); data->list = NULL; - g_static_mutex_unlock(&data->mutex); - connman_element_unregister_children(element); return 0; @@ -311,7 +300,6 @@ static struct connman_driver wifi_driver = { .disable = wifi_disable, }; -static GStaticMutex device_mutex = G_STATIC_MUTEX_INIT; static GSList *device_list = NULL; static void wifi_newlink(unsigned short type, int index, @@ -344,8 +332,6 @@ static void wifi_newlink(unsigned short type, int index, close(sk); - g_static_mutex_lock(&device_mutex); - for (list = device_list; list; list = list->next) { struct connman_element *device = list->data; @@ -355,8 +341,6 @@ static void wifi_newlink(unsigned short type, int index, } } - g_static_mutex_unlock(&device_mutex); - if (exists == TRUE) { g_free(name); return; @@ -369,12 +353,8 @@ static void wifi_newlink(unsigned short type, int index, device->index = index; device->name = name; - g_static_mutex_lock(&device_mutex); - connman_element_register(device, NULL); device_list = g_slist_append(device_list, device); - - g_static_mutex_unlock(&device_mutex); } static void wifi_dellink(unsigned short type, int index, @@ -384,8 +364,6 @@ static void wifi_dellink(unsigned short type, int index, DBG("index %d", index); - g_static_mutex_lock(&device_mutex); - for (list = device_list; list; list = list->next) { struct connman_element *device = list->data; @@ -396,8 +374,6 @@ static void wifi_dellink(unsigned short type, int index, break; } } - - g_static_mutex_unlock(&device_mutex); } static struct connman_rtnl wifi_rtnl = { @@ -426,8 +402,6 @@ static void supplicant_disconnect(DBusConnection *connection, void *user_data) connman_rtnl_unregister(&wifi_rtnl); - g_static_mutex_lock(&device_mutex); - for (list = device_list; list; list = list->next) { struct connman_element *device = list->data; @@ -438,8 +412,6 @@ static void supplicant_disconnect(DBusConnection *connection, void *user_data) g_slist_free(device_list); device_list = NULL; - g_static_mutex_unlock(&device_mutex); - __supplicant_exit(); } diff --git a/src/connman.h b/src/connman.h index 7b7cc5e..d7124d2 100644 --- a/src/connman.h +++ b/src/connman.h @@ -82,6 +82,14 @@ const char *__connman_element_subtype2string(enum connman_element_subtype type); int __connman_element_load(struct connman_element *element); int __connman_element_store(struct connman_element *element); +static inline void __connman_element_lock(struct connman_element *element) +{ +} + +static inline void __connman_element_unlock(struct connman_element *element) +{ +} + #include int __connman_device_init(void); diff --git a/src/element.c b/src/element.c index 6e14a8c..9fd4a01 100644 --- a/src/element.c +++ b/src/element.c @@ -212,7 +212,7 @@ static void add_common_properties(struct connman_element *element, DBUS_TYPE_STRING, &passphrase); } - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -220,7 +220,7 @@ static void add_common_properties(struct connman_element *element, append_property(dict, property); } - connman_element_unlock(element); + __connman_element_unlock(element); } static DBusMessage *get_properties(DBusConnection *conn, @@ -422,7 +422,7 @@ static DBusMessage *set_property(DBusConnection *conn, if (__connman_security_check_privileges(msg) < 0) return __connman_error_permission_denied(msg); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -444,7 +444,7 @@ static DBusMessage *set_property(DBusConnection *conn, property->value = NULL; } - connman_element_unlock(element); + __connman_element_unlock(element); return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); } @@ -465,7 +465,7 @@ static DBusMessage *clear_property(DBusConnection *conn, if (__connman_security_check_privileges(msg) < 0) return __connman_error_permission_denied(msg); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -487,7 +487,7 @@ static DBusMessage *clear_property(DBusConnection *conn, property->value = NULL; } - connman_element_unlock(element); + __connman_element_unlock(element); return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); } @@ -704,9 +704,9 @@ static gboolean probe_driver(GNode *node, gpointer data) if (driver->probe(element) < 0) return FALSE; - connman_element_lock(element); + __connman_element_lock(element); element->driver = driver; - connman_element_unlock(element); + __connman_element_unlock(element); } return FALSE; @@ -771,9 +771,9 @@ static gboolean remove_driver(GNode *node, gpointer data) if (driver->remove) driver->remove(element); - connman_element_lock(element); + __connman_element_lock(element); element->driver = NULL; - connman_element_unlock(element); + __connman_element_unlock(element); } return FALSE; @@ -821,8 +821,6 @@ struct connman_element *connman_element_create(const char *name) element->refcount = 1; - g_static_mutex_init(&element->mutex); - element->name = g_strdup(name); element->type = CONNMAN_ELEMENT_TYPE_UNKNOWN; element->subtype = CONNMAN_ELEMENT_SUBTYPE_UNKNOWN; @@ -850,7 +848,7 @@ static void free_properties(struct connman_element *element) DBG("element %p name %s", element, element->name); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -870,7 +868,7 @@ static void free_properties(struct connman_element *element) element->properties = NULL; - connman_element_unlock(element); + __connman_element_unlock(element); } void connman_element_unref(struct connman_element *element) @@ -919,9 +917,9 @@ int connman_element_add_static_property(struct connman_element *element, break; } - connman_element_lock(element); + __connman_element_lock(element); element->properties = g_slist_append(element->properties, property); - connman_element_unlock(element); + __connman_element_unlock(element); return 0; } @@ -959,9 +957,9 @@ int connman_element_add_static_array_property(struct connman_element *element, break; } - connman_element_lock(element); + __connman_element_lock(element); element->properties = g_slist_append(element->properties, property); - connman_element_unlock(element); + __connman_element_unlock(element); return 0; } @@ -1014,7 +1012,7 @@ static struct connman_property *create_property(struct connman_element *element, DBG("element %p name %s", element, element->name); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { property = list->data; @@ -1041,7 +1039,7 @@ static struct connman_property *create_property(struct connman_element *element, element->properties = g_slist_append(element->properties, property); unlock: - connman_element_unlock(element); + __connman_element_unlock(element); return property; } @@ -1127,40 +1125,40 @@ int connman_element_set_property(struct connman_element *element, { switch (id) { case CONNMAN_PROPERTY_ID_IPV4_ADDRESS: - connman_element_lock(element); + __connman_element_lock(element); g_free(element->ipv4.address); element->ipv4.address = g_strdup(*((const char **) value)); - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_IPV4_NETMASK: - connman_element_lock(element); + __connman_element_lock(element); g_free(element->ipv4.netmask); element->ipv4.netmask = g_strdup(*((const char **) value)); - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_IPV4_GATEWAY: - connman_element_lock(element); + __connman_element_lock(element); g_free(element->ipv4.gateway); element->ipv4.gateway = g_strdup(*((const char **) value)); - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_IPV4_NAMESERVER: - connman_element_lock(element); + __connman_element_lock(element); g_free(element->ipv4.nameserver); element->ipv4.nameserver = g_strdup(*((const char **) value)); - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_WIFI_SECURITY: - connman_element_lock(element); + __connman_element_lock(element); g_free(element->wifi.security); element->wifi.security = g_strdup(*((const char **) value)); - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_WIFI_PASSPHRASE: - connman_element_lock(element); + __connman_element_lock(element); g_free(element->wifi.passphrase); element->wifi.passphrase = g_strdup(*((const char **) value)); - connman_element_unlock(element); + __connman_element_unlock(element); break; default: return -EINVAL; @@ -1185,49 +1183,49 @@ int connman_element_get_value(struct connman_element *element, if (element->ipv4.address == NULL) return connman_element_get_value(element->parent, id, value); - connman_element_lock(element); + __connman_element_lock(element); *((char **) value) = element->ipv4.address; - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_IPV4_NETMASK: if (element->ipv4.netmask == NULL) return connman_element_get_value(element->parent, id, value); - connman_element_lock(element); + __connman_element_lock(element); *((char **) value) = element->ipv4.netmask; - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_IPV4_GATEWAY: if (element->ipv4.gateway == NULL) return connman_element_get_value(element->parent, id, value); - connman_element_lock(element); + __connman_element_lock(element); *((char **) value) = element->ipv4.gateway; - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_IPV4_NAMESERVER: if (element->ipv4.nameserver == NULL) return connman_element_get_value(element->parent, id, value); - connman_element_lock(element); + __connman_element_lock(element); *((char **) value) = element->ipv4.nameserver; - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_WIFI_SECURITY: if (element->wifi.security == NULL) return connman_element_get_value(element->parent, id, value); - connman_element_lock(element); + __connman_element_lock(element); *((char **) value) = element->wifi.security; - connman_element_unlock(element); + __connman_element_unlock(element); break; case CONNMAN_PROPERTY_ID_WIFI_PASSPHRASE: if (element->wifi.passphrase == NULL) return connman_element_get_value(element->parent, id, value); - connman_element_lock(element); + __connman_element_lock(element); *((char **) value) = element->wifi.passphrase; - connman_element_unlock(element); + __connman_element_unlock(element); break; default: return -EINVAL; @@ -1244,7 +1242,7 @@ gboolean connman_element_get_static_property(struct connman_element *element, DBG("element %p name %s", element, element->name); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -1259,7 +1257,7 @@ gboolean connman_element_get_static_property(struct connman_element *element, } } - connman_element_unlock(element); + __connman_element_unlock(element); return found; } @@ -1272,7 +1270,7 @@ gboolean connman_element_get_static_array_property(struct connman_element *eleme DBG("element %p name %s", element, element->name); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -1288,7 +1286,7 @@ gboolean connman_element_get_static_array_property(struct connman_element *eleme } } - connman_element_unlock(element); + __connman_element_unlock(element); return found; } @@ -1301,7 +1299,7 @@ gboolean connman_element_match_static_property(struct connman_element *element, DBG("element %p name %s", element, element->name); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -1320,7 +1318,7 @@ gboolean connman_element_match_static_property(struct connman_element *element, break; } - connman_element_unlock(element); + __connman_element_unlock(element); return result; } @@ -1448,7 +1446,7 @@ static void register_element(gpointer data, gpointer user_data) g_static_rw_lock_writer_lock(&element_lock); - connman_element_lock(element); + __connman_element_lock(element); if (element->parent) { node = g_node_find(element_root, G_PRE_ORDER, @@ -1468,7 +1466,7 @@ static void register_element(gpointer data, gpointer user_data) set_reference_properties(element); - connman_element_unlock(element); + __connman_element_unlock(element); DBG("element %p path %s", element, element->path); @@ -1536,9 +1534,9 @@ static void register_element(gpointer data, gpointer user_data) DBG("driver %p name %s", driver, driver->name); if (driver->probe(element) == 0) { - connman_element_lock(element); + __connman_element_lock(element); element->driver = driver; - connman_element_unlock(element); + __connman_element_unlock(element); break; } } @@ -1572,19 +1570,19 @@ int connman_element_register(struct connman_element *element, if (connman_element_ref(element) == NULL) return -EINVAL; - connman_element_lock(element); + __connman_element_lock(element); if (element->name == NULL) { element->name = g_strdup(type2string(element->type)); if (element->name == NULL) { - connman_element_unlock(element); + __connman_element_unlock(element); return -EINVAL; } } element->parent = parent; - connman_element_unlock(element); + __connman_element_unlock(element); register_element(element, NULL); @@ -1605,9 +1603,9 @@ static gboolean remove_element(GNode *node, gpointer user_data) if (element->driver->remove) element->driver->remove(element); - connman_element_lock(element); + __connman_element_lock(element); element->driver = NULL; - connman_element_unlock(element); + __connman_element_unlock(element); } if (node != NULL) { @@ -1785,9 +1783,9 @@ static gboolean free_driver(GNode *node, gpointer data) if (element->driver->remove) element->driver->remove(element); - connman_element_lock(element); + __connman_element_lock(element); element->driver = NULL; - connman_element_unlock(element); + __connman_element_unlock(element); } return FALSE; diff --git a/src/storage.c b/src/storage.c index 06337c7..15e0cd6 100644 --- a/src/storage.c +++ b/src/storage.c @@ -106,7 +106,7 @@ static void do_update(GKeyFile *keyfile, struct connman_element *element) g_key_file_set_boolean(keyfile, element->path, "Enabled", element->enabled); - connman_element_lock(element); + __connman_element_lock(element); for (list = element->properties; list; list = list->next) { struct connman_property *property = list->data; @@ -122,7 +122,7 @@ static void do_update(GKeyFile *keyfile, struct connman_element *element) property->name, property->value); } - connman_element_unlock(element); + __connman_element_unlock(element); if (connman_element_get_value(element, CONNMAN_PROPERTY_ID_WIFI_SECURITY, &value) == 0)