Skip to content
Snippets Groups Projects
Commit 2c8a23c5 authored by ricardo.dossanto1's avatar ricardo.dossanto1
Browse files

fuck this I succeded fuck yo mama

parent bbf1b36e
No related branches found
No related tags found
No related merge requests found
No preview for this file type
...@@ -110,7 +110,7 @@ void *task_c(){ ...@@ -110,7 +110,7 @@ void *task_c(){
WORK; WORK;
} }
printf("C has stopeed\n"); printf("C has stopped\n");
return NULL; return NULL;
} }
void *task_d(){ void *task_d(){
...@@ -207,11 +207,7 @@ void *task_f(){ ...@@ -207,11 +207,7 @@ void *task_f(){
for (int k = 0; k < 6; k++){ for (int k = 0; k < 6; k++){
close_queue(&queue[k]); close_queue(&queue[k]);
} for (int i = 0; i < 2; i++) sem_post(queue[k].libre);
for (int k = 0; k < 10; k++){
// sem_post(queue[k].used);
sem_post(queue[k].libre);
} }
printf("task F stopped!\n"); printf("task F stopped!\n");
......
No preview for this file type
#include "queue_mgt.h" #include "queue_mgt.h"
#include <pthread.h>
#include <semaphore.h>
int init_queue(queue_t *queue, int element_byte_size_max, int nb_of_elements_max) { int init_queue(queue_t *queue, int element_byte_size_max, int nb_of_elements_max) {
if (queue == NULL || element_byte_size_max <= 0 || nb_of_elements_max <= 0) { if (queue == NULL || element_byte_size_max <= 0 || nb_of_elements_max <= 0) {
...@@ -95,7 +97,11 @@ void send(queue_t *queue, void *element) { ...@@ -95,7 +97,11 @@ void send(queue_t *queue, void *element) {
// Insérer l'élément dans la file // Insérer l'élément dans la file
if (queue->buffer != NULL){ if (queue->buffer != NULL){
if (queue->closed) return; //end because queue is closed if (queue->closed){
sem_post(queue->used);
pthread_mutex_unlock(queue->mutex);
return; //end because queue is closed
}
memcpy(queue->buffer + (queue->size * queue->tail), element, queue->size); memcpy(queue->buffer + (queue->size * queue->tail), element, queue->size);
queue->tail = (queue->tail + 1) % queue->capacity; queue->tail = (queue->tail + 1) % queue->capacity;
queue->count++; queue->count++;
...@@ -115,7 +121,11 @@ void receive(queue_t *queue, void *element) { ...@@ -115,7 +121,11 @@ void receive(queue_t *queue, void *element) {
// Extraire l'élément de la file // Extraire l'élément de la file
if (queue->buffer != NULL){ if (queue->buffer != NULL){
if (queue->closed) return; //end because queue is closed if (queue->closed){
pthread_mutex_unlock(queue->mutex);
sem_post(queue->libre);
return; //end because queue is closed
}
memcpy(element, queue->buffer + (queue->size * queue->head), queue->size); memcpy(element, queue->buffer + (queue->size * queue->head), queue->size);
queue->head = (queue->head + 1) % queue->capacity; queue->head = (queue->head + 1) % queue->capacity;
queue->count--; queue->count--;
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment