From c23a90112ffc50ed5977874ec31cf4fd3d4afd9b Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Wed, 31 May 2023 17:38:49 +0200 Subject: Simplified coroutine API. Removed unneeded cco_await_coro() and cco_yield_coro(). --- misc/examples/cointerleave.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'misc/examples') diff --git a/misc/examples/cointerleave.c b/misc/examples/cointerleave.c index 42bf1d32..51b9f39a 100644 --- a/misc/examples/cointerleave.c +++ b/misc/examples/cointerleave.c @@ -29,11 +29,15 @@ struct Generator { void interleaved(struct Generator* g) { cco_routine(g) { - while (!(cco_done(&g->x) & cco_done(&g->y))) - { - cco_yield_coro(&g->x, g->value = get_value(&g->x)); - cco_yield_coro(&g->y, g->value = get_value(&g->y)); - } + do { + g->value = get_value(&g->x); + if (!cco_done(&g->x)) + cco_yield(); + + g->value = get_value(&g->y); + if (!cco_done(&g->y)) + cco_yield(); + } while (!(cco_done(&g->x) & cco_done(&g->y))); } } -- cgit v1.2.3