---
src/proxy.c | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/proxy.c b/src/proxy.c
index 77ab4f5..98e73d4 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -242,7 +242,7 @@ int pacrunner_proxy_set_auto(struct pacrunner_proxy *proxy,
}
static GList *proxy_list = NULL;
-static GStaticMutex proxy_mutex = G_STATIC_MUTEX_INIT;
+static GMutex *proxy_mutex = NULL;
int pacrunner_proxy_enable(struct pacrunner_proxy *proxy)
{
@@ -263,9 +263,9 @@ int pacrunner_proxy_enable(struct pacrunner_proxy *proxy)
__pacrunner_js_set_proxy(proxy);
- g_static_mutex_lock(&proxy_mutex);
+ g_mutex_lock(proxy_mutex);
proxy_list = g_list_append(proxy_list, proxy);
- g_static_mutex_unlock(&proxy_mutex);
+ g_mutex_unlock(proxy_mutex);
return 0;
}
@@ -283,9 +283,9 @@ int pacrunner_proxy_disable(struct pacrunner_proxy *proxy)
if (list == NULL)
return -ENXIO;
- g_static_mutex_lock(&proxy_mutex);
+ g_mutex_lock(proxy_mutex);
proxy_list = g_list_remove_link(proxy_list, list);
- g_static_mutex_unlock(&proxy_mutex);
+ g_mutex_unlock(proxy_mutex);
__pacrunner_js_set_proxy(NULL);
@@ -304,7 +304,7 @@ char *pacrunner_proxy_lookup(const char *url, const char
*host)
if (proxy_list == NULL)
return NULL;
- g_static_mutex_lock(&proxy_mutex);
+ g_mutex_lock(proxy_mutex);
for (list = g_list_first(proxy_list); list; list = g_list_next(list)) {
struct pacrunner_proxy *proxy = list->data;
@@ -317,7 +317,7 @@ char *pacrunner_proxy_lookup(const char *url, const char
*host)
selected_proxy = proxy;
}
- g_static_mutex_unlock(&proxy_mutex);
+ g_mutex_unlock(proxy_mutex);
if (selected_proxy == NULL)
return NULL;
@@ -341,6 +341,8 @@ int __pacrunner_proxy_init(void)
{
DBG("");
+ proxy_mutex = g_mutex_new();
+
return 0;
}
@@ -359,6 +361,9 @@ void __pacrunner_proxy_cleanup(void)
pacrunner_proxy_unref(proxy);
}
+ g_mutex_free(proxy_mutex);
+ proxy_mutex = NULL;
+
g_list_free(proxy_list);
proxy_list = NULL;
}
--
1.7.3.3
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman