Subject: [PATCH] ash: make 'sleep' a builtin

shawnlandden at tutanota.com shawnlandden at tutanota.com
Sat Aug 27 04:19:30 UTC 2022


This reduces the number of processes spawned when in an indefinate
do-nothing loop in a shell script.

Signed-off-by: Shawn Landden <shawnlandden at tutanota.com>
---
shell/ash.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/shell/ash.c b/shell/ash.c
index 55c1034f5..eba7759e7 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -134,6 +134,11 @@
//config:	default y
//config:	depends on SHELL_ASH
//config:
+//config:config ASH_SLEEP
+//config:	bool "sleep builtin"
+//config:	default y
+//config:	depends on SHELL_ASH
+//config:
//config:config ASH_HELP
//config:	bool "help builtin"
//config:	default y
@@ -10155,6 +10160,9 @@ static int FAST_FUNC printfcmd(int argc, char **argv) { return printf_main(argc,
#if ENABLE_ASH_TEST || BASH_TEST2
static int FAST_FUNC testcmd(int argc, char **argv)   { return test_main(argc, argv); }
#endif
+#if ENABLE_ASH_SLEEP
+static int FAST_FUNC sleepcmd(int argc, char **argv)   { return sleep_main(argc, argv); }
+#endif

/* Keep these in proper order since it is searched via bsearch() */
static const struct builtincmd builtintab[] = {
@@ -10217,6 +10225,9 @@ static const struct builtincmd builtintab[] = {
{ BUILTIN_SPEC_REG      "return"  , returncmd  },
{ BUILTIN_SPEC_REG      "set"     , setcmd     },
{ BUILTIN_SPEC_REG      "shift"   , shiftcmd   },
+#if ENABLE_ASH_SLEEP
+	{ BUILTIN_REGULAR       "sleep"   , sleepcmd    },
+#endif
#if BASH_SOURCE
{ BUILTIN_SPEC_REG      "source"  , dotcmd     },
#endif
--
2.36.1

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20220827/92d529cc/attachment.html>


More information about the busybox mailing list