Use threads for event processing
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
@@ -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
@@ -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