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