From 75b57e30c8dd7a0598ae80b703faceb07908c3ed Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Mon, 27 Feb 2023 08:17:08 +0100 Subject: Simplified coroutine.h a bit and modified coroutines.c --- include/stc/algo/coroutine.h | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) (limited to 'include') diff --git a/include/stc/algo/coroutine.h b/include/stc/algo/coroutine.h index 7ea53a0c..66b54366 100644 --- a/include/stc/algo/coroutine.h +++ b/include/stc/algo/coroutine.h @@ -61,15 +61,14 @@ int main(void) { #include #define cco_begin(c) \ - int *_state = &(c)->cco_state, _nodyn; \ + int *_state = &(c)->cco_state; \ switch (*_state) { \ case 0: #define cco_end() \ *_state = 0; break; \ default: assert(!"missing cco_final: or illegal state"); \ - } \ - *_state *= -1; (void)_nodyn + } #define cco_yield(retval) \ do { \ @@ -88,19 +87,4 @@ int main(void) { #define cco_alive(c) ((c) && (c)->cco_state > 0) #define cco_stop(c) ((c)->cco_state = (c)->cco_state ? -1 : -2, c) -// --------------------------------------------------------------- - -#define cco_begin_dyn(cp) \ - if (!*(cp)) *(cp) = malloc(sizeof **(cp)), (*(cp))->cco_state = 0; \ - int* _state = &(*(cp))->cco_state, _dyn; \ - switch (*_state) { \ - case 0: - -#define cco_end_dyn(cp) \ - *_state = 0; break; \ - default: assert(!"missing cco_final: or illegal state"); \ - } \ - *_state *= -1; (void)_dyn; \ - free(*(cp)); *(cp) = NULL - #endif -- cgit v1.2.3