In embedded land, you can just make something that works like setjmp and memcopy the stack off to someplace convenient.<p>Super useful if you want something resembling modern programming in an embedded context. It is a bit better than callback hell, but you do end up using memory for all those saved off stacks, so that limits how many co-routines can be in play at once. Thankfully embedded projects tend to have small stacks. :)