Hi all, In my cooperative scheduler I currently use a regular exception type for thread cancellation. But these tend to get eaten, for example by std::iosteam functions. Now I see those functions do catch and rethrow a __cxxabiv1::__forced_unwind type, and I presume such an object can be thrown via _Unwind_ForcedUnwind(). But how do you actually use it? Specifically, how is the exception supposed to be allocated, who is in charge of freeing it, and how do you make sure it stops where you want it to?