#! /bin/bash

trap 'echo "fin de la detection";exit 0' USR1

nb_paniers=5
nb_cabines=3
while true; do
    nbdeadlocked=0
    ./P.sh semaphore_counter_paniers.lock
    ./P.sh semaphore_counter_cabines.lock
    for r in cabine panier; do
	for p in $r*; do
	    read pid < $p
	    if [ $r = "cabine" ]; then
		semaphore_waiting_queue=semaphore_waiting_queue_paniers
	    else
		semaphore_waiting_queue=semaphore_waiting_queue_cabines
	    fi
	    if grep $pid $semaphore_waiting_queue > /dev/null; then
		nbdeadlocked=$(expr $nbdeadlocked + 1)
	    fi
	done
    done
    ./V.sh semaphore_counter_cabines.lock
    ./V.sh semaphore_counter_paniers.lock
    if [ $nbdeadlocked -eq $(expr $nb_cabines + $nb_paniers) ]; then
	kill -USR1 $PPID
	exit 0
    else
	echo "pas d'interblocage detecte"
    fi
    sleep 1
done
