#!/system/bin/sh
# Usage: spin_n_threads.sh <num_threads> [<nice>]
# spin_n_threads.sh kill
TGID_FILE=/data/local/tmp/spin_n_threads_tgid.txt
spin_loop() {
while :
do
NUM=$(expr 1 + 1)
done
}
clean_up() {
trap - SIGINT SIGTERM SIGKILL
kill -- -$$
}
NUM_THREADS=1
if [ ! -z ${1} ]; then
if [ ${1} == "kill" ]; then
TGID=$(cat ${TGID_FILE})
kill -- -${TGID}
exit 0
fi
if [ ${1} -gt 1 ]; then
NUM_THREADS=${1}
else
exit 0
fi
fi
if [ ! -z ${2} ]; then
renice -n ${2} -p $$
fi
# Register cleanup on trap
trap clean_up SIGINT SIGTERM SIGKILL
for i in $(seq 1 $NUM_THREADS ); do
spin_loop &
done
echo $$ > ${TGID_FILE}