#!/usr/local/bin/bx use b int factorial(int n) if n == 0 return 1 return n * factorial(n-1) int fibonacci(int n) if n == 0 || n == 1 return n return fibonacci(n-1) + fibonacci(n-2) proc my_factorial_coro() state int i for i=9; i>=0; --i int j = factorial(i) printf(" %d %d\n", i, j) yield() proc my_fibonacci_coro() state int i for i=1; i<8; ++i int j = fibonacci(i) printf(" %d %d\n", i, j) yield() proc my_main_coro() state int i for i=0; i<10; ++i printf("%d\n", i) yield() Main() sched_init() new(m, my_main_coro) new(c, my_fibonacci_coro) new(c2, my_factorial_coro) # repeat(100000) # c->p.pc = 1 # c2->p.pc = 1 # m->p.pc = 1 start(c) ; start(c2) ; start(m) run()