On 06.10.2021 17:45, David Ahern wrote:
On 10/6/21 5:47 AM, Leonard Crestez wrote:
Sleeping for one second after a kill is not necessary and adds up quite
quickly. Replace with a fast loop spinning until pidof returns nothing.
Signed-off-by: Leonard Crestez <cdleonard@xxxxxxxxx>
---
tools/testing/selftests/net/fcnal-test.sh | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/net/fcnal-test.sh b/tools/testing/selftests/net/fcnal-test.sh
index 0bd60cd3bc06..b7fda51deb3f 100755
--- a/tools/testing/selftests/net/fcnal-test.sh
+++ b/tools/testing/selftests/net/fcnal-test.sh
@@ -176,12 +176,19 @@ show_hint()
fi
}
kill_procs()
{
- killall nettest ping ping6 >/dev/null 2>&1
- sleep 1
+ local pids
+ while true; do
+ pids=$(pidof nettest ping ping6)
+ if [[ -z $pids ]]; then
+ break
+ fi
+ kill $pids
+ sleep 0.01
+ done
}
do_run_cmd()
{
local cmd="$*"
ideally the script keeps track of processes it launches and only kills
those. The original killall was just a stop gap until the process
tracking was added.
That's harder to do. This is much faster and not in any way worse than
killall + sleep.
Some sort of a wrapper would have to added for each process running the
background, for each run_ping_bg.
If nettest forks by itself then $! won't work, maybe some sort of
--pid-file switch would be required?
--
Regards,
Leonard