hal/hald/linux osspec.c,1.16,1.17

Joe Shaw joe at pdx.freedesktop.org
Tue Apr 27 12:05:28 PDT 2004


Update of /cvs/hal/hal/hald/linux
In directory pdx:/tmp/cvs-serv29919/hald/linux

Modified Files:
	osspec.c 
Log Message:
2004-04-27  Joe Shaw  <joe at ximian.com>

	* doc/TODO: Remove a now completed TODO item.

	* hald/hald.c (gdl_store_changed): Don't call hal_callout_device()
	in the removed case.

	* hald/linux/osspec.c (remove_callouts_finished): Actually remove
	the device from the GDL in this callback.
	(remove_device, remove_class_device): Connect to the
	callouts_finished signal and call device callouts instead of
	removing it from the GDL here.

Index: osspec.c
===================================================================
RCS file: /cvs/hal/hal/hald/linux/osspec.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- a/osspec.c	26 Apr 2004 16:52:54 -0000	1.16
+++ b/osspec.c	27 Apr 2004 19:05:26 -0000	1.17
@@ -430,6 +430,12 @@
 }
 
 static void
+remove_callouts_finished (HalDevice *d, gpointer user_data)
+{
+	hal_device_store_remove (hald_get_gdl (), d);
+}
+
+static void
 remove_device (const char *path, const char *subsystem)
 
 {	HalDevice *d;
@@ -444,8 +450,11 @@
 	} else {
 		/*HAL_INFO (("Removing device @ sysfspath %s, udi %s", 
 		  path, d->udi));*/
-		
-		hal_device_store_remove (hald_get_gdl (), d);
+
+		g_signal_connect (d, "callouts_finished",
+				  G_CALLBACK (remove_callouts_finished), NULL);
+
+		hal_callout_device (d, FALSE);
 	}
 }
 
@@ -490,11 +499,12 @@
 				ch->removed (ch, path, d);
 			}
 		}
-		
-		hal_device_store_remove (hald_get_gdl (), d);
-	}
 
-	
+		g_signal_connect (d, "callouts_finished",
+				  G_CALLBACK (remove_callouts_finished), NULL);
+
+		hal_callout_device (d, FALSE);
+	}
 
 	/* For now, just call the normal remove_device */
 	remove_device (path, subsystem);





More information about the hal-commit mailing list