From: Marcel Holtmann Date: Thu, 11 Dec 2008 23:45:36 +0000 (+0100) Subject: Remove usage of reader/write lock X-Git-Tag: 2.0_alpha~4483 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cd320803ef8b6850e097adcd4c074ef416be190a;p=framework%2Fconnectivity%2Fconnman.git Remove usage of reader/write lock --- diff --git a/src/element.c b/src/element.c index 16a7d27..93c31df 100644 --- a/src/element.c +++ b/src/element.c @@ -34,11 +34,8 @@ static DBusConnection *connection; -static GStaticRWLock element_lock = G_STATIC_RW_LOCK_INIT; static GNode *element_root = NULL; - static GSList *driver_list = NULL; - static gchar *device_filter = NULL; static struct { @@ -884,10 +881,8 @@ void __connman_element_list(struct connman_element *element, } else node = element_root; - g_static_rw_lock_reader_lock(&element_lock); g_node_traverse(node, G_PRE_ORDER, G_TRAVERSE_ALL, -1, append_path, &filter); - g_static_rw_lock_reader_unlock(&element_lock); } struct count_data { @@ -930,10 +925,8 @@ int __connman_element_count(struct connman_element *element, } else node = element_root; - g_static_rw_lock_reader_lock(&element_lock); g_node_traverse(node, G_PRE_ORDER, G_TRAVERSE_ALL, -1, count_element, &data); - g_static_rw_lock_reader_unlock(&element_lock); return data.count; } @@ -1005,13 +998,9 @@ void __connman_driver_rescan(struct connman_driver *driver) if (!driver->probe) return; - g_static_rw_lock_writer_lock(&element_lock); - if (element_root != NULL) g_node_traverse(element_root, G_PRE_ORDER, G_TRAVERSE_ALL, -1, probe_driver, driver); - - g_static_rw_lock_writer_unlock(&element_lock); } /** @@ -1032,8 +1021,6 @@ int connman_driver_register(struct connman_driver *driver) if (!driver->probe) return -EINVAL; - g_static_rw_lock_writer_lock(&element_lock); - driver_list = g_slist_insert_sorted(driver_list, driver, compare_priority); @@ -1041,8 +1028,6 @@ int connman_driver_register(struct connman_driver *driver) g_node_traverse(element_root, G_PRE_ORDER, G_TRAVERSE_ALL, -1, probe_driver, driver); - g_static_rw_lock_writer_unlock(&element_lock); - return 0; } @@ -1091,15 +1076,11 @@ void connman_driver_unregister(struct connman_driver *driver) { DBG("driver %p name %s", driver, driver->name); - g_static_rw_lock_writer_lock(&element_lock); - driver_list = g_slist_remove(driver_list, driver); if (element_root != NULL) g_node_traverse(element_root, G_POST_ORDER, G_TRAVERSE_ALL, -1, remove_driver, driver); - - g_static_rw_lock_writer_unlock(&element_lock); } /** @@ -1754,8 +1735,6 @@ static void register_element(gpointer data, gpointer user_data) GSList *list; GNode *node; - g_static_rw_lock_writer_lock(&element_lock); - __connman_element_lock(element); if (element->parent) { @@ -1833,12 +1812,8 @@ static void register_element(gpointer data, gpointer user_data) DBUS_TYPE_INVALID); #endif - g_static_rw_lock_writer_unlock(&element_lock); - __connman_element_store(element); - g_static_rw_lock_writer_lock(&element_lock); - for (list = driver_list; list; list = list->next) { struct connman_driver *driver = list->data; @@ -1856,8 +1831,6 @@ static void register_element(gpointer data, gpointer user_data) break; } } - - g_static_rw_lock_writer_unlock(&element_lock); } /** @@ -1976,15 +1949,11 @@ void connman_element_unregister(struct connman_element *element) DBG("element %p name %s", element, element->name); - g_static_rw_lock_writer_lock(&element_lock); - node = g_node_find(element_root, G_PRE_ORDER, G_TRAVERSE_ALL, element); if (node != NULL) g_node_traverse(node, G_POST_ORDER, G_TRAVERSE_ALL, -1, remove_element, NULL); - - g_static_rw_lock_writer_unlock(&element_lock); } void connman_element_unregister_children(struct connman_element *element) @@ -1993,15 +1962,11 @@ void connman_element_unregister_children(struct connman_element *element) DBG("element %p name %s", element, element->name); - g_static_rw_lock_writer_lock(&element_lock); - node = g_node_find(element_root, G_PRE_ORDER, G_TRAVERSE_ALL, element); if (node != NULL) g_node_traverse(node, G_POST_ORDER, G_TRAVERSE_ALL, -1, remove_element, element); - - g_static_rw_lock_writer_unlock(&element_lock); } static gboolean update_element(GNode *node, gpointer user_data) @@ -2029,15 +1994,11 @@ void connman_element_update(struct connman_element *element) DBG("element %p name %s", element, element->name); - g_static_rw_lock_reader_lock(&element_lock); - node = g_node_find(element_root, G_PRE_ORDER, G_TRAVERSE_ALL, element); if (node != NULL) g_node_traverse(node, G_PRE_ORDER, G_TRAVERSE_ALL, -1, update_element, NULL); - - g_static_rw_lock_reader_unlock(&element_lock); } int connman_element_set_enabled(struct connman_element *element, @@ -2065,8 +2026,6 @@ int __connman_element_init(DBusConnection *conn, const char *device) device_filter = g_strdup(device); - g_static_rw_lock_writer_lock(&element_lock); - element = connman_element_create("root"); element->path = g_strdup("/"); @@ -2076,8 +2035,6 @@ int __connman_element_init(DBusConnection *conn, const char *device) element_root = g_node_new(element); - g_static_rw_lock_writer_unlock(&element_lock); - __connman_device_init(); return 0; @@ -2119,20 +2076,14 @@ void __connman_element_cleanup(void) __connman_device_cleanup(); - g_static_rw_lock_writer_lock(&element_lock); g_node_traverse(element_root, G_POST_ORDER, G_TRAVERSE_ALL, -1, free_driver, NULL); - g_static_rw_lock_writer_unlock(&element_lock); - g_static_rw_lock_writer_lock(&element_lock); g_node_traverse(element_root, G_POST_ORDER, G_TRAVERSE_ALL, -1, free_node, NULL); - g_static_rw_lock_writer_unlock(&element_lock); - g_static_rw_lock_writer_lock(&element_lock); g_node_destroy(element_root); element_root = NULL; - g_static_rw_lock_writer_unlock(&element_lock); g_free(device_filter); diff --git a/src/resolver.c b/src/resolver.c index 404bc3d..929fd2e 100644 --- a/src/resolver.c +++ b/src/resolver.c @@ -25,7 +25,6 @@ #include "connman.h" -static GStaticRWLock resolver_lock = G_STATIC_RW_LOCK_INIT; static GSList *resolver_list = NULL; /** @@ -40,12 +39,8 @@ int connman_resolver_register(struct connman_resolver *resolver) { DBG("resolver %p name %s", resolver, resolver->name); - g_static_rw_lock_writer_lock(&resolver_lock); - resolver_list = g_slist_append(resolver_list, resolver); - g_static_rw_lock_writer_unlock(&resolver_lock); - return 0; } @@ -59,9 +54,5 @@ void connman_resolver_unregister(struct connman_resolver *resolver) { DBG("resolver %p name %s", resolver, resolver->name); - g_static_rw_lock_writer_lock(&resolver_lock); - resolver_list = g_slist_remove(resolver_list, resolver); - - g_static_rw_lock_writer_unlock(&resolver_lock); } diff --git a/src/rtnl.c b/src/rtnl.c index 1e66a9a..ece4f16 100644 --- a/src/rtnl.c +++ b/src/rtnl.c @@ -36,7 +36,6 @@ #include "connman.h" -static GStaticRWLock rtnl_lock = G_STATIC_RW_LOCK_INIT; static GSList *rtnl_list = NULL; static gint compare_priority(gconstpointer a, gconstpointer b) @@ -59,13 +58,9 @@ int connman_rtnl_register(struct connman_rtnl *rtnl) { DBG("rtnl %p name %s", rtnl, rtnl->name); - g_static_rw_lock_writer_lock(&rtnl_lock); - rtnl_list = g_slist_insert_sorted(rtnl_list, rtnl, compare_priority); - g_static_rw_lock_writer_unlock(&rtnl_lock); - return 0; } @@ -79,11 +74,7 @@ void connman_rtnl_unregister(struct connman_rtnl *rtnl) { DBG("rtnl %p name %s", rtnl, rtnl->name); - g_static_rw_lock_writer_lock(&rtnl_lock); - rtnl_list = g_slist_remove(rtnl_list, rtnl); - - g_static_rw_lock_writer_unlock(&rtnl_lock); } static void process_newlink(unsigned short type, int index, @@ -93,16 +84,12 @@ static void process_newlink(unsigned short type, int index, DBG("index %d", index); - g_static_rw_lock_reader_lock(&rtnl_lock); - for (list = rtnl_list; list; list = list->next) { struct connman_rtnl *rtnl = list->data; if (rtnl->newlink) rtnl->newlink(type, index, flags, change); } - - g_static_rw_lock_reader_unlock(&rtnl_lock); } static void process_dellink(unsigned short type, int index, @@ -112,16 +99,12 @@ static void process_dellink(unsigned short type, int index, DBG("index %d", index); - g_static_rw_lock_reader_lock(&rtnl_lock); - for (list = rtnl_list; list; list = list->next) { struct connman_rtnl *rtnl = list->data; if (rtnl->dellink) rtnl->dellink(type, index, flags, change); } - - g_static_rw_lock_reader_unlock(&rtnl_lock); } static inline void print_inet(struct rtattr *attr, const char *name, int family) diff --git a/src/security.c b/src/security.c index c7c3ccf..41d45e4 100644 --- a/src/security.c +++ b/src/security.c @@ -25,7 +25,6 @@ #include "connman.h" -static GStaticRWLock security_lock = G_STATIC_RW_LOCK_INIT; static GSList *security_list = NULL; static gint compare_priority(gconstpointer a, gconstpointer b) @@ -48,13 +47,9 @@ int connman_security_register(struct connman_security *security) { DBG("security %p name %s", security, security->name); - g_static_rw_lock_writer_lock(&security_lock); - security_list = g_slist_insert_sorted(security_list, security, compare_priority); - g_static_rw_lock_writer_unlock(&security_lock); - return 0; } @@ -68,11 +63,7 @@ void connman_security_unregister(struct connman_security *security) { DBG("security %p name %s", security, security->name); - g_static_rw_lock_writer_lock(&security_lock); - security_list = g_slist_remove(security_list, security); - - g_static_rw_lock_writer_unlock(&security_lock); } int __connman_security_check_privileges(DBusMessage *message) @@ -85,8 +76,6 @@ int __connman_security_check_privileges(DBusMessage *message) sender = dbus_message_get_sender(message); - g_static_rw_lock_reader_lock(&security_lock); - for (list = security_list; list; list = list->next) { struct connman_security *security = list->data; @@ -98,7 +87,5 @@ int __connman_security_check_privileges(DBusMessage *message) } } - g_static_rw_lock_reader_unlock(&security_lock); - return err; }