summaryrefslogtreecommitdiffhomepage
path: root/include/stc/algo
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2023-06-14 13:24:29 +0200
committerTyge Løvset <[email protected]>2023-06-14 13:24:29 +0200
commit3f919a3b38a88e1c96399cd6096dec16060802a1 (patch)
tree8c071e33522d31cd7c90834423760da514fc7f46 /include/stc/algo
parentc51bdc8d8aeac63c0af955f81593ef0be326a7e0 (diff)
downloadSTC-modified-3f919a3b38a88e1c96399cd6096dec16060802a1.tar.gz
STC-modified-3f919a3b38a88e1c96399cd6096dec16060802a1.zip
Fixed a bug in cco_await_on(), and added _pull() function to random access containers (moves element out of container, ie no drop).
Diffstat (limited to 'include/stc/algo')
-rw-r--r--include/stc/algo/coroutine.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/stc/algo/coroutine.h b/include/stc/algo/coroutine.h
index 61581f64..e0952e1f 100644
--- a/include/stc/algo/coroutine.h
+++ b/include/stc/algo/coroutine.h
@@ -93,8 +93,8 @@ enum {
#define cco_resume(closure) (closure)->coroutine(closure)
#define cco_await_on(...) c_MACRO_OVERLOAD(cco_await_on, __VA_ARGS__)
-#define cco_await_on_1(closure) cco_await_on_2(closure, cco_resume(closure))
-#define cco_await_on_2(co, func) cco_await_1((func(co), !cco_done(co)))
+#define cco_await_on_1(closure) cco_await_2((cco_resume(closure), cco_done(closure)), )
+#define cco_await_on_2(co, func) cco_await_2((func(co), cco_done(co)), )
#define cco_block_on(...) c_MACRO_OVERLOAD(cco_block_on, __VA_ARGS__)
#define cco_block_on_1(closure) while (cco_resume(closure), !cco_done(closure))