diff options
| -rw-r--r-- | include/stc/algo/coroutine.h | 2 | ||||
| -rw-r--r-- | misc/examples/coroutines.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/include/stc/algo/coroutine.h b/include/stc/algo/coroutine.h index 3592b968..d29b2cef 100644 --- a/include/stc/algo/coroutine.h +++ b/include/stc/algo/coroutine.h @@ -68,7 +68,7 @@ enum { #define cco_begin(ctx) \ int *_state = &(ctx)->cco_state; \ switch (*_state) { \ - case 0: case cco_state_done: + case 0: #define cco_end(retval) \ *_state = cco_state_done; break; \ diff --git a/misc/examples/coroutines.c b/misc/examples/coroutines.c index 2c9e6d5c..b11b8532 100644 --- a/misc/examples/coroutines.c +++ b/misc/examples/coroutines.c @@ -85,6 +85,7 @@ bool combined(struct combined* C) { // Reuse the C->prm context and extend the count: C->prm.count = 8; C->prm.result += 2; + cco_reset(&C->prm); cco_yield(prime(&C->prm), &C->prm, true); cco_final: puts("final comb"); |
