1 contributor
25 lines779 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
5 months ago
13
extern void Task_ctor(Task *tsk, size_t stack_size, Task_Entry entry, void *param);
14
extern Task *Task_New(size_t stack_size, Task_Entry entry, void *param);
7 months ago
15
extern void Task_dtor(Task *tsk);
16
extern void Task_Delete(Task *tsk);
8 months ago
37
17
static inline bool Task_Await(Task *tsk, void **res);
7 months ago
18
extern void Task_Cancel(Task *tsk, void *cancel_value);
8 months ago
37
19
static inline bool Task_IsCanceled(Task *tsk);
20
static inline Future *Task_GetAwaitedFuture(Task *tsk);
5 months ago
21
extern bool Task_Run(size_t stack_size, Task_Entry start, void *value, void **res);
8 months ago
37
22
23
#include "task.def.h"
24
#endif
25