#include "dynarray.h"
#include <stdint.h>
#include "cotask.h"
Aller au code source de ce fichier.
◆ COEVENT_ARRAY_ACTION
| #define COEVENT_ARRAY_ACTION |
( |
| func, |
|
|
| array ) |
Valeur :
void _coevent_array_action(unsigned int num, CoEvent *events, void(*func)(CoEvent *))
Execute func sur chaque evenement d'un tableau de num coevent.
◆ COEVENT_CANCEL_ARRAY
| #define COEVENT_CANCEL_ARRAY |
( |
| array | ) |
|
Valeur :
#define COEVENT_ARRAY_ACTION(func, array)
Definition coevent.h:114
void coevent_cancel(CoEvent *evt)
annule un event et reveille tous ses enfants
◆ COEVENT_INIT_ARRAY
| #define COEVENT_INIT_ARRAY |
( |
| array | ) |
|
Valeur :
void coevent_init(CoEvent *evt)
Initialise un événement Lui donne un id unique.
◆ COEVENTS_ARRAY
| #define COEVENTS_ARRAY |
( |
| ... | ) |
|
◆ BoxedTask
| typedef struct BoxedTask BoxedTask |
◆ CoEvent
| typedef struct CoEvent CoEvent |
◆ CoEventSnapshot
| typedef struct CoEventSnapshot CoEventSnapshot |
◆ CoEventStatus
◆ CoEventStatus
| Valeurs énumérées |
|---|
| CO_EVENT_PENDING | |
| CO_EVENT_SIGNALED | |
| CO_EVENT_CANCELED | |
◆ _coevent_array_action()
| void _coevent_array_action |
( |
unsigned int | num, |
|
|
CoEvent * | events, |
|
|
void(* | func )(CoEvent *) ) |
Execute func sur chaque evenement d'un tableau de num coevent.
- Paramètres
-
◆ coevent_add_subscriber()
Ajoute task en subscriber de l'evenement.
- Paramètres
-
◆ coevent_cancel()
| void coevent_cancel |
( |
CoEvent * | evt | ) |
|
annule un event et reveille tous ses enfants
- Paramètres
-
◆ coevent_cleanup_subscribers()
| void coevent_cleanup_subscribers |
( |
CoEvent * | evt | ) |
|
Nettoie l'evenement en ne gardant dans ses subscribers bien ceux qui le reference correctement.
- Paramètres
-
◆ coevent_init()
Initialise un événement Lui donne un id unique.
- Paramètres
-
◆ coevent_poll()
Renvoie l'état de l'evenement par rapport a un snapshot.
il faut comprendre que quand on fait dormir une tache sur un evenement, on fait un snap de l'evenement pour s'en souvenir. Plus tard, le sched va verifier si la tache doit se reveiller en comparant le snap a l evenement actuel ie si il a ete signalé alors on aura sur l evenement un num_signal > au num_signal du snap => on reveille la tache!
- Paramètres
-
- Renvoie
- CoEventStatus
◆ coevent_signal()
| void coevent_signal |
( |
CoEvent * | evt | ) |
|
Signale l'evenement et reveille ses enfants.
- Paramètres
-
◆ coevent_signal_once()
| void coevent_signal_once |
( |
CoEvent * | evt | ) |
|
Signale l'evenement ssi il n'a jamais ete signale avant.
- Paramètres
-
◆ coevent_snapshot()
◆ COEVENTS_ARRAY()
| typedef COEVENTS_ARRAY |
( |
finished | | ) |
|