summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-12-12 00:45:36 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-12-12 00:45:36 +0100
commitcd320803ef8b6850e097adcd4c074ef416be190a (patch)
treea53f07d3fc2fbc8421d5dcf7edda0c8f6418cc88
parentb149b69096a0efd9889ade2faef3c6ad83d73814 (diff)
downloadconnman-cd320803ef8b6850e097adcd4c074ef416be190a.tar.gz
connman-cd320803ef8b6850e097adcd4c074ef416be190a.tar.bz2
connman-cd320803ef8b6850e097adcd4c074ef416be190a.zip
Remove usage of reader/write lock
-rw-r--r--src/element.c49
-rw-r--r--src/resolver.c9
-rw-r--r--src/rtnl.c17
-rw-r--r--src/security.c13
4 files changed, 0 insertions, 88 deletions
diff --git a/src/element.c b/src/element.c
index 16a7d277..93c31df2 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 404bc3dd..929fd2e5 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 1e66a9af..ece4f165 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 c7c3ccf1..41d45e40 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;
}