NiboRoboLib 3.6 - MThread Library
semaphore.h
gehe zur Dokumentation dieser Datei
1 #ifndef SEMAPHORE_H
2 #define SEMAPHORE_H
3 
4 #include "thread.h"
5 
19 typedef struct _semaphore_s {
20  cdll_t waiting_threads;
21  uint16_t counter;
22 } semaphore_t;
23 
24 
28 void semaphore_init(semaphore_t * semaphore);
29 
30 
34 void semaphore_delete(semaphore_t * semaphore);
35 
36 
44 uint8_t semaphore_acquire(semaphore_t * semaphore, uint16_t timeout);
45 
46 
50 void semaphore_signal(semaphore_t * semaphore);
51 
52 
58 uint8_t semaphore_acquireISR(semaphore_t * semaphore);
59 
60 
64 void semaphore_signalISR(semaphore_t * semaphore);
65 
66 
67 
68 #endif
uint8_t semaphore_acquireISR(semaphore_t *semaphore)
Wenn der Wert der Semaphore größer Null ist wird der Wert um ein verringert und der Aufruf kehr erfol...
Die zentrale Datei zum Multi-threading.
uint8_t semaphore_acquire(semaphore_t *semaphore, uint16_t timeout)
Wenn der Wert der Semaphore größer Null ist wird der Wert um ein verringert und der Aufruf kehr erfol...
void semaphore_signalISR(semaphore_t *semaphore)
Der Wert der Semaphore wird um eins erhöht, falls Threads warten werden sie benachrichtigt.
void semaphore_signal(semaphore_t *semaphore)
Der Wert der Semaphore wird um eins erhöht, falls Threads warten werden sie benachrichtigt.
Definition: cdll.h:32
Definition: semaphore.h:19