25 lines680 bytes
Newer
Older
-
+
commited
{line.log.rev}
on
8 months ago
37
1
#ifndef TASK_H
2
#define TASK_H
3
#include <stdbool.h>
4
#include "future.h"
7 months ago
5
#include "cor_platform.h"
8 months ago
37
6
7
typedef struct Task Task;
8
9
extern _Cor_thread_local Task *current_task;
10
11
typedef bool (*Task_Entry)(void *param, void **res);
12
13
void Task_ctor(Task *tsk, Task_Entry entry, void *param);
14
Task *Task_New(Task_Entry entry, void *param);
15
void Task_dtor(Task *tsk);
16
void Task_Delete(Task *tsk);
17
static inline bool Task_Await(Task *tsk, void **res);
18
void Task_Cancel(Task *tsk, void *cancel_value);
19
static inline bool Task_IsCanceled(Task *tsk);
20
static inline Future *Task_GetAwaitedFuture(Task *tsk);
21
bool Task_Run(Task_Entry start, void *value, void **res);
22
23
#include "task.def.h"
24
#endif
25