main: swapcontext(&uctx_main, &uctx_func2) func2: started (1, 2) func2: swapcontext(&uctx_func2, &uctx_func1) func1: started func1: swapcontext(&uctx_func1, &uctx_func2) func2: returning func1: returning main: exiting