int main( void ) { coro_init(); for ( ; ; ) { if ( coro_schedule() == 0 ) break; } coro_uninit(); return ( 0 ); }
static void symmetric_test() { coro_start(); coro_create((coro_func_t)gen_even, (void*)11); coro_create((coro_func_t)gen_odd, (void*)11); coro_create((coro_func_t)gen_third, (void*)11); coro_dump(); coro_schedule(); fprintf(stdout, "\n"); coro_finish(); }
static void calc_test(const char* data) { coro_start(); const char* stream = data ? data: "23 46+10*100-50-10*"; fprintf(stderr, "calc '%s'\n", stream); int result = 0; coro_create((coro_func_t)decode, (void*)stream); coro_create((coro_func_t)parse, (void*)&result); coro_schedule(); printf("result = %d\n", result); coro_finish(); }