diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-08-03 18:17:12 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-08-03 18:17:12 +0200 |
commit | 4c20d9f2b0223874e2b5ac1235d5f33fdd02589b (patch) | |
tree | e533a2de1fe3e146bb1dcd410e7c6ff6b68fa0a6 /coreutils/timeout.c | |
parent | 9b1c8bf89be668a533505e5fb4405bac6eed651c (diff) | |
download | busybox-w32-4c20d9f2b0223874e2b5ac1235d5f33fdd02589b.tar.gz busybox-w32-4c20d9f2b0223874e2b5ac1235d5f33fdd02589b.tar.bz2 busybox-w32-4c20d9f2b0223874e2b5ac1235d5f33fdd02589b.zip |
extend fractional duration support to "top -d N.N" and "timeout"
function old new delta
parse_duration_str - 168 +168
sleep_for_duration - 157 +157
top_main 885 928 +43
timeout_main 269 312 +43
handle_input 571 614 +43
duration_suffixes - 40 +40
sfx 40 - -40
sleep_main 364 79 -285
------------------------------------------------------------------------------
(add/remove: 4/1 grow/shrink: 3/1 up/down: 494/-325) Total: 169 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/timeout.c')
-rw-r--r-- | coreutils/timeout.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/coreutils/timeout.c b/coreutils/timeout.c index 4a6117f59..663303c2d 100644 --- a/coreutils/timeout.c +++ b/coreutils/timeout.c | |||
@@ -52,7 +52,8 @@ int timeout_main(int argc UNUSED_PARAM, char **argv) | |||
52 | int signo; | 52 | int signo; |
53 | int status; | 53 | int status; |
54 | int parent = 0; | 54 | int parent = 0; |
55 | int timeout = 10; | 55 | unsigned timeout; |
56 | const char *timeout_s = "10"; | ||
56 | pid_t pid; | 57 | pid_t pid; |
57 | #if !BB_MMU | 58 | #if !BB_MMU |
58 | char *sv1, *sv2; | 59 | char *sv1, *sv2; |
@@ -63,11 +64,12 @@ int timeout_main(int argc UNUSED_PARAM, char **argv) | |||
63 | 64 | ||
64 | /* -t SECONDS; -p PARENT_PID */ | 65 | /* -t SECONDS; -p PARENT_PID */ |
65 | /* '+': stop at first non-option */ | 66 | /* '+': stop at first non-option */ |
66 | getopt32(argv, "+s:t:+" USE_FOR_NOMMU("p:+"), &opt_s, &timeout, &parent); | 67 | getopt32(argv, "+s:t:" USE_FOR_NOMMU("p:+"), &opt_s, &timeout_s, &parent); |
67 | /*argv += optind; - no, wait for bb_daemonize_or_rexec! */ | 68 | /*argv += optind; - no, wait for bb_daemonize_or_rexec! */ |
68 | signo = get_signum(opt_s); | 69 | signo = get_signum(opt_s); |
69 | if (signo < 0) | 70 | if (signo < 0) |
70 | bb_error_msg_and_die("unknown signal '%s'", opt_s); | 71 | bb_error_msg_and_die("unknown signal '%s'", opt_s); |
72 | timeout = parse_duration_str((char*)timeout_s); | ||
71 | 73 | ||
72 | /* We want to create a grandchild which will watch | 74 | /* We want to create a grandchild which will watch |
73 | * and kill the grandparent. Other methods: | 75 | * and kill the grandparent. Other methods: |