2006-12-19 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c - (nm_policy_device_change_check, nm_policy_schedule_device_change_check): better locking of the device change check handler ID. Incorrect locking was causing lost device change requests git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2191 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2006-12-19 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
* src/NetworkManagerPolicy.c
|
||||
- (nm_policy_device_change_check, nm_policy_schedule_device_change_check):
|
||||
better locking of the device change check handler ID. Incorrect
|
||||
locking was causing lost device change requests
|
||||
|
||||
2006-12-18 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
* libnm-util/dbus-dict-helpers.c
|
||||
|
@@ -41,6 +41,9 @@
|
||||
#include "nm-dbus-manager.h"
|
||||
|
||||
|
||||
static GStaticMutex dev_change_mutex = G_STATIC_MUTEX_INIT;
|
||||
|
||||
|
||||
/*
|
||||
* nm_policy_activation_finish
|
||||
*
|
||||
@@ -290,7 +293,9 @@ nm_policy_device_change_check (NMData *data)
|
||||
|
||||
g_return_val_if_fail (data != NULL, FALSE);
|
||||
|
||||
g_static_mutex_lock (&dev_change_mutex);
|
||||
data->dev_change_check_idle_id = 0;
|
||||
g_static_mutex_unlock (&dev_change_mutex);
|
||||
|
||||
old_dev = nm_get_active_device (data);
|
||||
|
||||
@@ -450,14 +455,11 @@ out:
|
||||
*/
|
||||
void nm_policy_schedule_device_change_check (NMData *data)
|
||||
{
|
||||
static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
|
||||
|
||||
g_return_if_fail (data != NULL);
|
||||
|
||||
g_static_mutex_lock (&mutex);
|
||||
g_static_mutex_lock (&dev_change_mutex);
|
||||
|
||||
if (data->dev_change_check_idle_id == 0)
|
||||
{
|
||||
if (data->dev_change_check_idle_id == 0) {
|
||||
GSource * source = g_idle_source_new ();
|
||||
|
||||
g_source_set_callback (source, (GSourceFunc) nm_policy_device_change_check, data, NULL);
|
||||
@@ -465,7 +467,7 @@ void nm_policy_schedule_device_change_check (NMData *data)
|
||||
g_source_unref (source);
|
||||
}
|
||||
|
||||
g_static_mutex_unlock (&mutex);
|
||||
g_static_mutex_unlock (&dev_change_mutex);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user