1 contributor
18 lines618 bytes
1#include <stdbool.h>
2
3typedef struct Coroutine Coroutine;
4
5typedef void (*Coroutine_YieldCallback)(void *this);
6typedef void *(*Coroutine_Start)(void *);
7
8void Coroutine_StartSystem();
9void Coroutine_StopSystem();
10Coroutine *Coroutine_New(void *this, Coroutine_YieldCallback on_yield, Coroutine_Start start);
11void *Coroutine_Run(Coroutine *cor, void *value);
12void Coroutine_Delete(Coroutine *cor);
13void Coroutine_Continue(Coroutine *cor, void *value, bool early);
14void *Coroutine_Yield(void *value);
15void *Coroutine_GetValue(Coroutine *cor);
16Coroutine *Coroutine_GetActive();
17bool Coroutine_IsRunning(Coroutine *cor);
18