medfall

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

linux_semaphore.h (383B)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include <err.h>
#include <semaphore.h>

struct Semaphore {
	sem_t sem;
};

inline void semaphore_init( Semaphore * sem ) {
	int ok = sem_init( &sem->sem, 0, 0 );
	if( ok == -1 ) {
		err( 1, "sem_init failed" );
	}
}

inline void semaphore_signal( Semaphore * sem ) {
	sem_post( &sem->sem );
}

inline void semaphore_wait( Semaphore * sem ) {
	sem_wait( &sem->sem );
}