libnx/nx/include/switch/kernel/barrier.h
Juan Antonio Hernández Cánovas a9d95be173 added linked list and part of barrier
2018-08-24 00:36:49 +02:00

25 lines
566 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;
RwLock 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);