]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev-event: make udev_event_new() take exec_delay
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 1 Nov 2018 13:13:57 +0000 (22:13 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 7 Nov 2018 04:35:03 +0000 (13:35 +0900)
src/test/test-udev.c
src/udev/udev-event.c
src/udev/udev.h
src/udev/udevadm-test.c
src/udev/udevd.c

index 1285117c32ba15951435ba9fc035673991668a0f..60267b70c61a7118a13e3cf37a561f3e16ce8787 100644 (file)
@@ -82,7 +82,7 @@ int main(int argc, char *argv[]) {
                 goto out;
         }
 
-        assert_se(event = udev_event_new(dev));
+        assert_se(event = udev_event_new(dev, 0));
 
         assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGTERM, SIGINT, SIGHUP, SIGCHLD, -1) >= 0);
 
index a0f6a5daa48ace5751a0089103047bfe95edf4b9..17aaa428420f316af41150f9b67195fd9f808391 100644 (file)
@@ -42,7 +42,7 @@ typedef struct Spawn {
         size_t result_len;
 } Spawn;
 
-struct udev_event *udev_event_new(struct udev_device *dev) {
+struct udev_event *udev_event_new(struct udev_device *dev, int exec_delay) {
         struct udev_event *event;
 
         assert(dev);
@@ -54,6 +54,7 @@ struct udev_event *udev_event_new(struct udev_device *dev) {
         *event = (struct udev_event) {
                 .dev = dev,
                 .birth_usec = now(CLOCK_MONOTONIC),
+                .exec_delay = exec_delay,
         };
 
         return event;
index f723dd706749d11039f65d202b5e2f605d5f5e94..246f74e6ee3f5a69eac9aa56394251dbbe9e9602 100644 (file)
@@ -60,7 +60,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
 int udev_rules_apply_static_dev_perms(struct udev_rules *rules);
 
 /* udev-event.c */
-struct udev_event *udev_event_new(struct udev_device *dev);
+struct udev_event *udev_event_new(struct udev_device *dev, int exec_delay);
 struct udev_event *udev_event_free(struct udev_event *event);
 ssize_t udev_event_apply_format(struct udev_event *event,
                                 const char *src, char *dest, size_t size,
index 20f713d738d55773b46fcecb07aeaf65239843dd..df669971848dac6691f2c8b94a075b29eaab0a9d 100644 (file)
@@ -128,7 +128,7 @@ int test_main(int argc, char *argv[], void *userdata) {
         /* don't read info from the db */
         udev_device_set_info_loaded(dev);
 
-        event = udev_event_new(dev);
+        event = udev_event_new(dev, 0);
 
         sigfillset(&mask);
         sigprocmask(SIG_SETMASK, &mask, &sigmask_orig);
index 8391638d34c9cd4e397714044af4e96f8e525356..9985907e80dbd0cf8bfc1fd1cb3cc38ee45306d1 100644 (file)
@@ -409,15 +409,12 @@ static void worker_spawn(Manager *manager, struct event *event) {
                         assert(dev);
 
                         log_debug("seq %llu running", udev_device_get_seqnum(dev));
-                        udev_event = udev_event_new(dev);
-                        if (udev_event == NULL) {
+                        udev_event = udev_event_new(dev, arg_exec_delay);
+                        if (!udev_event) {
                                 r = -ENOMEM;
                                 goto out;
                         }
 
-                        if (arg_exec_delay > 0)
-                                udev_event->exec_delay = arg_exec_delay;
-
                         /*
                          * Take a shared lock on the device node; this establishes
                          * a concept of device "ownership" to serialize device