26 lines
916 B
C
26 lines
916 B
C
//
|
|
// Created by mrnek on 25.05.2023.
|
|
//
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <pthread.h>
|
|
|
|
#ifndef DATA_RACE_MUTEX_H
|
|
#define DATA_RACE_MUTEX_H
|
|
|
|
#define NUM_PARTICIPANTS 10
|
|
#define TUNNEL_CAPACITY (NUM_PARTICIPANTS / 2)
|
|
|
|
struct race_info {
|
|
pthread_mutex_t *tunnel_mutex; // Мьютекс для обеспечения взаимного исключения
|
|
pthread_cond_t *start_cond, *finish_cond; // Условные переменные для ожидания начала и завершения гонки
|
|
int participants_in_tunnel; // Количество участников в тоннеле
|
|
int participants_finished ; // Количество закончивших гонку участников
|
|
};
|
|
|
|
struct race_info *info;
|
|
|
|
void * participant(void *arg); // Функция для участника гонки
|
|
|
|
#endif //DATA_RACE_MUTEX_H
|