fix poor_man_cd race conditions (#52)

This commit is contained in:
Ahmed Bayoumy 2024-02-19 00:28:44 -06:00 committed by GitHub
parent 53d4664ab7
commit 2b232a8e2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,20 +2,40 @@
start_process() {
GOEXPERIMENT=arenas go run ./... &
process_pid=$!
child_process_pid=$(pgrep -P $process_pid)
local process_pid=$!
local child_process_pid=$(pgrep -P $process_pid)
echo "Process started with PID $process_pid and child PID $child_process_pid"
}
is_process_running() {
local process_pid=$(ps -ef | grep "exe/node" | grep -v grep | awk '{print $2}')
ps -p $process_pid > /dev/null 2>&1
return $?
}
kill_process() {
kill $process_pid
kill $child_process_pid
local process_count=$(ps -ef | grep "exe/node" | grep -v grep | wc -l)
local process_pids=$(ps -ef | grep "exe/node" | grep -v grep | awk '{print $2}' | xargs)
if [ $process_count -gt 0 ]; then
echo "killing processes $process_pids"
kill $process_pids
local child_process_count=$(pgrep -P $process_pids | wc -l)
local child_process_pids=$(pgrep -P $process_pids | xargs)
if [ $child_process_count -gt 0 ]; then
echo "killing child processes $child_process_pids"
kill $child_process_pids
else
echo "no child processes running"
fi
else
echo "no processes running"
fi
}
kill_process
start_process
while true; do