To implement coroutines that mimics non-preemptive scheduling of user level threads