From 58598eb7093561d914a6254697e137b815f1fdfc Mon Sep 17 00:00:00 2001 From: Shawn Landden Date: Sat, 27 Aug 2022 19:56:21 +0200 Subject: ash: optional sleep builtin function old new delta sleepcmd - 10 +10 builtintab 352 360 +8 .rodata 105264 105271 +7 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 2/0 up/down: 25/0) Total: 25 bytes Signed-off-by: Shawn Landden Signed-off-by: Denys Vlasenko --- libbb/duration.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libbb') diff --git a/libbb/duration.c b/libbb/duration.c index a6a29dd..793d02f 100644 --- a/libbb/duration.c +++ b/libbb/duration.c @@ -76,6 +76,12 @@ void FAST_FUNC sleep_for_duration(duration_t duration) ts.tv_sec = duration; ts.tv_nsec = (duration - ts.tv_sec) * 1000000000; } + /* NB: if ENABLE_ASH_SLEEP, we end up here if "sleep N" + * is run in ash. ^C will still work, because ash's signal handler + * does not return (it longjumps), the below loop + * will not continue looping. + * (This wouldn't work in hush) + */ do { errno = 0; nanosleep(&ts, &ts); -- cgit v1.1