Skip to contentSkip to conversation

Use threads for event processing

PATCH Applied Alan Jenkins 1 participant 1 message Oct 22, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 4/4 Use threads for event processing

Do-not-merge: libc calls need to be audited for thread safety.

udev/test-udev.c +1 -0
index 929f752..49ddd5b 100644
@@ -107,6 +107,7 @@ int main(int argc, char *argv[])
 fail:
 	udev_rules_unref(rules);
 exit:
+	udev_exec_cleanup(udev);
 	udev_selinux_exit(udev);
 	udev_unref(udev);
 	if (err != 0)
udev/udev.h +5 -1
index fd3c73d..53516e4 100644
@@ -39,6 +39,9 @@
 #define READ_END				0
 #define WRITE_END				1
 
+#define UDEVD_PRIORITY			-4 /* nice level for daemon */
+#define UDEV_PRIORITY			-2 /* nice level for programs run by daemon*/
+
 static inline void logging_init(const char *program_name)
 {
 	openlog(program_name, LOG_PID | LOG_CONS, LOG_DAEMON);
@@ -77,7 +80,7 @@ struct udev_event {
 	int test;
 
 	struct udev_list_node node;
-	pid_t pid;
+	pthread_t thread;
 	int exitstatus;
 	time_t queue_time;
 };
@@ -106,6 +109,7 @@ extern void udev_node_update_old_links(struct udev_device *dev, struct udev_devi
 
 /* udev-exec.c */
 extern int udev_exec_init(struct udev *udev);
+extern void udev_exec_cleanup(struct udev *udev);
 extern int udev_exec(struct udev_device *dev, const char *command,
 		     char *result, size_t ressize, size_t *reslen);
 
udev/udevd.c +130 -110

365 lines not on this page · raw message