From 961e47847cdb33b1fabe4084cef7cd37f73a19d1 Mon Sep 17 00:00:00 2001 From: "greg@kroah.com" Date: Tue, 17 Feb 2004 20:59:26 -0800 Subject: [PATCH] [PATCH] add support for UDEV_NO_SLEEP env variable so Gentoo people will be happy. Actually, I'm happy to, startup time is much smaller... --- namedev.c | 6 ++++-- udev.h | 1 + udev_config.c | 5 +++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/namedev.c b/namedev.c index 186a9f5cc..90c85d41e 100644 --- a/namedev.c +++ b/namedev.c @@ -623,7 +623,8 @@ static struct sysfs_device *get_sysfs_device(struct sysfs_class_device *class_de tspec.tv_nsec = 10000000; /* sleep 10 millisec */ loop = 10; while (loop--) { - nanosleep(&tspec, NULL); + if (udev_sleep) + nanosleep(&tspec, NULL); if (class_dev_parent) sysfs_device = sysfs_get_classdev_device(class_dev_parent); else @@ -650,7 +651,8 @@ device_found: loop = 10; tspec.tv_nsec = 10000000; while (loop--) { - nanosleep(&tspec, NULL); + if (udev_sleep) + nanosleep(&tspec, NULL); sysfs_get_device_bus(sysfs_device); if (sysfs_device->bus[0] != '\0') diff --git a/udev.h b/udev.h index e8f93ad5a..1cd07852b 100644 --- a/udev.h +++ b/udev.h @@ -78,5 +78,6 @@ extern char default_mode_str[MODE_SIZE]; extern char default_owner_str[OWNER_SIZE]; extern char default_group_str[GROUP_SIZE]; extern int udev_log; +extern int udev_sleep; #endif diff --git a/udev_config.c b/udev_config.c index 34ef82b88..6714c1b73 100644 --- a/udev_config.c +++ b/udev_config.c @@ -49,6 +49,7 @@ char default_mode_str[MODE_SIZE]; char default_owner_str[OWNER_SIZE]; char default_group_str[GROUP_SIZE]; int udev_log; +int udev_sleep; static int string_is_true(char *str) @@ -71,6 +72,10 @@ static void init_variables(void) strfieldcpy(udev_rules_filename, UDEV_RULES_FILE); strfieldcpy(udev_permissions_filename, UDEV_PERMISSION_FILE); udev_log = string_is_true(UDEV_LOG_DEFAULT); + + udev_sleep = 1; + if (getenv("UDEV_NO_SLEEP") != NULL) + udev_sleep = 0; } #define set_var(_name, _var) \ -- 2.30.2