libnx/nx/include/switch/kernel/barrier.h
Juan Antonio Hernández Cánovas fac799648e finished barrier
2018-08-24 12:40:11 +02:00

25 lines
565 B
C

/**
* @file barrier.h
* @brief Barrier synchronization primitive.
* @author Yordrar
* @copyright libnx Authors
*/
#pragma once
#include "../types.h"
#include "condvar.h"
#include "mutex.h"
#include "../runtime/util/list.h"
typedef struct barrier {
List threads_registered;
List threads_waiting;
Mutex mutex;
bool isInited;
} Barrier;
void barrierInit(Barrier* b);
void barrierFree(Barrier* b);
void barrierRegister(Barrier* b, Thread* thread);
void barrierUnregister(Barrier* b, Thread* thread);
void barrierWait(Barrier* b, Thread* thread);