diff options
| author | Tyge Løvset <[email protected]> | 2023-05-08 18:45:24 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2023-05-08 18:45:24 +0200 |
| commit | 2f11c7cf36690a1493344189b6a011c26ee58a9b (patch) | |
| tree | 5ca6eba321563ec661277b5247271ebc828e9b59 /include | |
| parent | f8f544d8f5b805b9749f1e06fd7c1875b6115d48 (diff) | |
| download | STC-modified-2f11c7cf36690a1493344189b6a011c26ee58a9b.tar.gz STC-modified-2f11c7cf36690a1493344189b6a011c26ee58a9b.zip | |
coroutine cco_await_* and cco_yield_* changes.
Diffstat (limited to 'include')
| -rw-r--r-- | include/stc/algo/coroutine.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/include/stc/algo/coroutine.h b/include/stc/algo/coroutine.h index 83814605..979e05bb 100644 --- a/include/stc/algo/coroutine.h +++ b/include/stc/algo/coroutine.h @@ -82,9 +82,9 @@ enum { case __LINE__:; \ } while (0) -#define cco_yield_sub(...) c_MACRO_OVERLOAD(cco_yield_sub, __VA_ARGS__) -#define cco_yield_sub_2(co, call) cco_yield_sub_3(co, call, ) -#define cco_yield_sub_3(co, call, ret) \ +#define cco_yield_at(...) c_MACRO_OVERLOAD(cco_yield_at, __VA_ARGS__) +#define cco_yield_at_2(co, call) cco_yield_at_3(co, call, ) +#define cco_yield_at_3(co, call, ret) \ do { call; if (!cco_done(co)) cco_yield(ret); } while (0) #define cco_await(...) c_MACRO_OVERLOAD(cco_await, __VA_ARGS__) @@ -95,9 +95,9 @@ enum { case __LINE__: if (!(promise)) return ret; \ } while (0) -#define cco_await_sub(...) c_MACRO_OVERLOAD(cco_await_sub, __VA_ARGS__) -#define cco_await_sub_2(co, call) cco_await_sub_3(co, call, ) -#define cco_await_sub_3(co, call, ret) cco_await_2((call, cco_done(co)), ret) +#define cco_await_done(...) c_MACRO_OVERLOAD(cco_await_done, __VA_ARGS__) +#define cco_await_done_2(co, call) cco_await_done_3(co, call, ) +#define cco_await_done_3(co, call, ret) cco_await_2((call, cco_done(co)), ret) #define cco_run_blocked(co, call) while (call, !cco_done(co)) |
