#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <signal.h>
#include "exercice1.h"

//
// QUESTION 3 : Page 25 du cours 2 pour l'explication du signal en attente
// registre des signaux uniquement 1 bit, quand signal pris en compte avec do-work, il travail et ne prend pas en compte l'autre signal arrivé, en changant ce do_work dans le main le traitement se fait op shit bitch
// QESTION 4 :oui

int nbProcess = 0;

void catch_function() {
    printf("Signal reçu : %d\n", nbProcess);
    nbProcess++;
}

void exercice2() {
    signal(SIGUSR1, catch_function);

    printf("PID : %d\n", getpid());

    pause();
    int i;
    for(i = 0; i < nbProcess; i++) {
        printf("Debut du traitement : %d\n", i);
        do_work(2000); // Pause de 3000 ms
        printf("Fin du traitemente : %d\n", i);
    }

}
