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 );
}
|