This looks like an interesting C library for cancel-able, implicitly yielded coroutines.
https://github.com/sustrik/libdill