diff options
| author | Tyge Løvset <[email protected]> | 2023-05-31 17:38:49 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2023-05-31 17:38:49 +0200 |
| commit | c23a90112ffc50ed5977874ec31cf4fd3d4afd9b (patch) | |
| tree | 16213ecba2a5a4af8a2b0b18fb293605be702232 /misc/examples | |
| parent | 7dd28530c93b907cc26064232c5498e45e838723 (diff) | |
| download | STC-modified-c23a90112ffc50ed5977874ec31cf4fd3d4afd9b.tar.gz STC-modified-c23a90112ffc50ed5977874ec31cf4fd3d4afd9b.zip | |
Simplified coroutine API. Removed unneeded cco_await_coro() and cco_yield_coro().
Diffstat (limited to 'misc/examples')
| -rw-r--r-- | misc/examples/cointerleave.c | 14 |
1 files changed, 9 insertions, 5 deletions
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))); } } |
