aboutsummaryrefslogtreecommitdiff
path: root/coreutils/timeout.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-08-03 18:17:12 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2018-08-03 18:17:12 +0200
commit4c20d9f2b0223874e2b5ac1235d5f33fdd02589b (patch)
treee533a2de1fe3e146bb1dcd410e7c6ff6b68fa0a6 /coreutils/timeout.c
parent9b1c8bf89be668a533505e5fb4405bac6eed651c (diff)
downloadbusybox-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.c6
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: