diff --git a/Code_With_Threads/fonctions.c b/Code_With_Threads/fonctions.c index 10d0b19e8c863435deea2d4240c89e953a29c6e7..42df69f456de6e45594fc58f7da8c7017ba94727 100644 --- a/Code_With_Threads/fonctions.c +++ b/Code_With_Threads/fonctions.c @@ -9,7 +9,8 @@ #include "fonctions.h" /* -Initialise une liste de node contenant un entier +Initialise une liste de node_t +@my_list : la list_t qui est initialisée */ void init_list_t(list_t *my_list) { my_list->first = NULL; @@ -18,7 +19,8 @@ void init_list_t(list_t *my_list) { } /* -Initialise une liste de node contenant une liste +Initialise une liste de node_lst +@my_list : la list_lst qui est initialisée */ void init_list_lst(list_lst *my_list) { my_list->first = NULL; @@ -27,7 +29,9 @@ void init_list_lst(list_lst *my_list) { } /* -Ajoute un node contenant un entier à la fin d'une liste +Ajoute un node_t à la fin d'une list_t +@my_list : la list_t a laquelle on va ajouter un node_t +@value : la valeur que contiendra le node_t */ void put_node_t(list_t *my_list, int value) { node_t *new = malloc(sizeof(node_t)); @@ -45,7 +49,9 @@ void put_node_t(list_t *my_list, int value) { } /* -Ajoute un node contenant une liste à la fin d'une liste +Ajoute un node_lst à la fin d'une list_lst +@my_list : la list_lst a laquelle on va ajouter un node_lst +@put_list : la list_t que contiendra le node_lst */ void put_node_lst(list_lst *my_list, list_t *put_list) { node_lst *new = malloc(sizeof(node_lst)); @@ -63,7 +69,9 @@ void put_node_lst(list_lst *my_list, list_t *put_list) { } /* -Retire le premier node d'une liste et renvoit son entier +Retire le premier node_t d'une list_t et renvoit son entier +@my_list : la list_t de laquelle on va retier le node_t pointé par first +@return : la valeur (int) que contenait le node_t retiré */ int get_node_t(list_t *my_list) { if (my_list->length == 0) return -1; @@ -76,7 +84,9 @@ int get_node_t(list_t *my_list) { } /* -Retire le premier node d'une liste et renvoit sa liste +Retire le premier node_lst d'une list_lst et renvoit sa liste +@my_list ; la list_lst de laquelle on va retirer le node_lst pointé par first +@return : la liste (list_t) que contenait le node_lst retiré */ list_t *get_node_lst(list_lst *my_list) { if (my_list->length == 0) return NULL; @@ -89,17 +99,9 @@ list_t *get_node_lst(list_lst *my_list) { } /* -Renvoit l'entier d'un node situé à une position donnée +Vide une list_t de node_t +@my_list : la list_t qui va être vidée */ -int get_at_index(list_t *my_list, int index) { - if (my_list->length < index || index < 0) return -1; - node_t *temp = my_list->first; - for (int i = 0; i < index; i++) { - temp = temp->next; - } - return temp->value; -} - void clear_list_t(list_t *my_list) { if (my_list == NULL || my_list->length == 0) return; node_t *temp = my_list->first->next; @@ -113,15 +115,11 @@ void clear_list_t(list_t *my_list) { my_list->first = NULL; } -void clear_list_lst(list_lst *my_list) { - if (my_list->length == 0) return; - while (my_list->length != 0) { - list_t *temp = get_node_lst(my_list); - clear_list_t(temp); - free(temp); - } -} - +/* +Renvoie une list_t contenant un nombre suivi de ses diviseurs premiers +@value : le nombre (int) dont on veut trouver les diviseurs premiers +@return : une list_t contenant value dans le node_t pointé par first ainsi que ses diviseurs premiers +*/ list_t *prime_list(int value) { list_t *prime = malloc(sizeof(list_t)); if (!prime) return NULL; @@ -154,6 +152,11 @@ list_t *prime_list(int value) { return prime; } +/* +Initialise un buffer1 +@nthreads : le nombre (int) de threads passé en argument du programme +@return : un pointeur vers un buffer1 initialisé +*/ buffer1 *init_buffer_1(int nthreads) { buffer1 *buffer_1 = malloc(sizeof(buffer1)); if (!buffer_1) { @@ -189,6 +192,11 @@ buffer1 *init_buffer_1(int nthreads) { return buffer_1; } +/* +Initialise un buffer2 +@nthreads : le nombre (int) de threads passé en argument du programme +@return : un pointeur vers un buffer2 initialisé +*/ buffer2 *init_buffer_2(int nthreads) { buffer2 *buffer_2 = malloc(sizeof(buffer2)); if (!buffer_2) { @@ -210,6 +218,7 @@ buffer2 *init_buffer_2(int nthreads) { return NULL; } + buffer_2->can_stop = false; buffer_2->prime_numbers = malloc(sizeof(list_lst)); if (!buffer_2->prime_numbers) { free(buffer_2->prime_numbers); @@ -221,15 +230,4 @@ buffer2 *init_buffer_2(int nthreads) { printf ("buffer_2 created.\n"); return buffer_2; -} - -int count_lines(char *filename){ - int number; - int lines = 0; - FILE *file = fopen(filename, "r"); - while (fscanf(file, "%d", &number) != EOF) { - lines++; - } - fclose(file); - return lines; } \ No newline at end of file