Из руководства makecontext ...
Из-за ограничений в текущей реализации pthread, makecontext не должен использоваться в программах, которые связываются с библиотекой pthread (3) (независимо от того, используются потоки или нет).
Теперь мой вопрос: почему это не работает и каковы альтернативные методы. На самом деле меня интересует переключение стеков в потоке пользовательского уровня в некоторые моменты, но я вижу, что когда я делаю swapcontext, я время от времени возникают ошибки сегментации. Что мне делать?
Я хочу добиться чего-то вроде этого ...
void thread_func(void * thread_args)
{
a();
b();
getcontext/makecontext/swapcontext to call c();
d();
....
}
В этом случае я хочу использовать отдельный стек при выполнении функции c .