aboutsummaryrefslogtreecommitdiff
path: root/sys/base/coro/coro.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/base/coro/coro.c')
-rw-r--r--sys/base/coro/coro.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/sys/base/coro/coro.c b/sys/base/coro/coro.c
deleted file mode 100644
index 2255c99..0000000
--- a/sys/base/coro/coro.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "internal.h"
-
-/* Co-routine context */
-Coro*
-coro·make(uintptr stk, uintptr (*func)(Coro*, uintptr))
-{
- if (!func) return nil;
- if (stk == 0) stk = 8192;
-
- byte *block = malloc(stk);
- Coro *co = (Coro*)&block[stk - sizeof(Coro)];
- co->bp = block;
- co->size = stk;
-
- _newcoro(co, func, co);
- return co;
-}
-
-error
-coro·free(Coro *co)
-{
- enum
- {
- NIL,
- GOOD,
- EMPTY,
- LOST,
- };
-
- if (!co) return NIL;
- if (!co->bp) return LOST;
- if (co->size == 0) return EMPTY;
-
- free(co->bp);
-
- return GOOD;
-}
-
-uintptr
-coro·yield(Coro *c, uintptr arg)
-{
- return _coroyield(c, arg);
-}