chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: timeout - warn after a third of the timeout before killing
[elogind.git]
/
src
/
udev
/
udev-rules.c
diff --git
a/src/udev/udev-rules.c
b/src/udev/udev-rules.c
index 9514dde75144ac6b56c72e6349da35615a992120..db95442fda916730f1fb392ded5cecf64629e336 100644
(file)
--- a/
src/udev/udev-rules.c
+++ b/
src/udev/udev-rules.c
@@
-615,6
+615,7
@@
static int import_file_into_properties(struct udev_device *dev, const char *file
static int import_program_into_properties(struct udev_event *event,
usec_t timeout_usec,
static int import_program_into_properties(struct udev_event *event,
usec_t timeout_usec,
+ usec_t timeout_warn_usec,
const char *program, const sigset_t *sigmask) {
struct udev_device *dev = event->dev;
char **envp;
const char *program, const sigset_t *sigmask) {
struct udev_device *dev = event->dev;
char **envp;
@@
-623,7
+624,7
@@
static int import_program_into_properties(struct udev_event *event,
int err;
envp = udev_device_get_properties_envp(dev);
int err;
envp = udev_device_get_properties_envp(dev);
- err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result));
+ err = udev_event_spawn(event, timeout_usec,
timeout_warn_usec,
program, envp, sigmask, result, sizeof(result));
if (err < 0)
return err;
if (err < 0)
return err;
@@
-1862,6
+1863,7
@@
enum escape_type {
int udev_rules_apply_to_event(struct udev_rules *rules,
struct udev_event *event,
usec_t timeout_usec,
int udev_rules_apply_to_event(struct udev_rules *rules,
struct udev_event *event,
usec_t timeout_usec,
+ usec_t timeout_warn_usec,
const sigset_t *sigmask) {
struct token *cur;
struct token *rule;
const sigset_t *sigmask) {
struct token *cur;
struct token *rule;
@@
-2070,7
+2072,7
@@
int udev_rules_apply_to_event(struct udev_rules *rules,
rules_str(rules, rule->rule.filename_off),
rule->rule.filename_line);
rules_str(rules, rule->rule.filename_off),
rule->rule.filename_line);
- if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) {
+ if (udev_event_spawn(event, timeout_usec,
timeout_warn_usec,
program, envp, sigmask, result, sizeof(result)) < 0) {
if (cur->key.op != OP_NOMATCH)
goto nomatch;
} else {
if (cur->key.op != OP_NOMATCH)
goto nomatch;
} else {
@@
-2106,7
+2108,7
@@
int udev_rules_apply_to_event(struct udev_rules *rules,
rules_str(rules, rule->rule.filename_off),
rule->rule.filename_line);
rules_str(rules, rule->rule.filename_off),
rule->rule.filename_line);
- if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0)
+ if (import_program_into_properties(event, timeout_usec,
timeout_warn_usec,
import, sigmask) != 0)
if (cur->key.op != OP_NOMATCH)
goto nomatch;
break;
if (cur->key.op != OP_NOMATCH)
goto nomatch;
break;