#!/bin/bash

# timeout
# Needed as sometimes LOON locks up and this timer is needed
# to force an exit

# arg_1 loon output netlist to check
# arg_2 short timeout: expected loon execution time
# arg_3 loon timeout; max time we wait

sleep $2
while true
do
  loop=0
  while [ "$3" -gt "$loop" ]
  do
    let "loop=loop+1"
    if [ -f "$1" ]
    then
#echo "Sleep number "$loop
      exit 0
    fi
#date '+%S'
    sleep 1
#date '+%S'
  done
  #echo "# LOON timed out"
  kill_loop=0
  while [ "$(ps -a | grep ' loon$' | tail -1 | sed 's/^ *//' | tr -s ' ' ' ' | cut -f1 -d' ')" != "" ]
  do
    kill -9 $(ps -a | grep ' loon$' | tail -1 | sed 's/^ *//' | tr -s ' ' ' ' | cut -f1 -d' ') 2>/dev/null
    if [ "$kill_loop" -gt 10 ]
    then
      break
    fi
    let "kill_loop=kill_loop+1"
  done
  exit 1
done
