#!/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} |