Hieronder volgt een instructie die een taak beschrijft, gekoppeld aan een input die verdere context biedt. Schrijf een antwoord dat het verzoek op de juiste manier afvult.

### Instructie:
Kun je me een voorwaardelijke variabele in C geven met semaforen en mutexen?

###

### Antwoord:
Kun je me een voorwaardelijke variabele in C geven met semaforen en mutexen?
#include < pthread.h> #include <semafore.h> typedef struct {sem_t sem; pthread_mutex_t mutex; int flag; } cond_var_t; flet cond_var_init(cond_var_t* cv) {sem_init(&cv->sem, 0, 0); pthread_mutex_init(&cv->mutex, NULL); cv->flag = 0; } flette cond_var_signal(cond_var_t* cv) { pthread_mutex_lock(&cv->mutex); cv->flag = 1; sem_post(&cv->sem); pthread_mutex_unlock(&cv->mutex} } anight cond_var_wait(cond_var_t* cv) {pthread_mutex_mutex_mt->flag>
Hieronder volgt een instructie die een taak beschrijft, gekoppeld aan een input die verdere context biedt. Schrijf een antwoord dat het verzoek op de juiste manier afvult.

### Instructie:
Kun je me een voorwaardelijke variabele in C geven met semaforen en mutexen?

###

### Antwoord:
#include < pthread.h> #include <semafore.h> typedef struct {sem_t sem; pthread_mutex_t mutex; int flag; } cond_var_t; flet cond_var_init(cond_var_t* cv) {sem_init(&cv->sem, 0, 0); pthread_mutex_init(&cv->mutex, NULL); cv->flag = 0; } flette cond_var_signal(cond_var_t* cv) { pthread_mutex_lock(&cv->mutex); cv->flag = 1; sem_post(&cv->sem); pthread_mutex_unlock(&cv->mutex} } anight cond_var_wait(cond_var_t* cv) {pthread_mutex_mutex_mt->flag>