It's pretty common to call into C libraries in Ruby. Many widely used Ruby gems have what are called "native extensions". The approach that I know of to deal with this problem is that captured continuations with C stack frames are marked as non-resumable. Trying to resume such a continuation throws an exception. As the programmer, you'd write your async code in a way that avoids calls to C that call back into Ruby to prevent capturing non-resumable continuations.