The user thread functions in are deprecated because they use a deprecated C feature (they use a function declaration with empty parentheses f
For what it's worth, there's a Boost.Context library that was recently accepted and needs only to be merged into an official Boost release. Boost.Context addresses the same use cases as the POSIX ucontext family: low-overhead cooperative context switching. The author has taken pains with performance issues.