Почему makecontext не работает с pthreads

Из руководства makecontext ...

Из-за ограничений в текущей реализации pthread, makecontext не должен использоваться в программах, которые связываются с библиотекой pthread (3) (независимо от того, используются потоки или нет).

Теперь мой вопрос: почему это не работает и каковы альтернативные методы. На самом деле меня интересует переключение стеков в потоке пользовательского уровня в некоторые моменты, но я вижу, что когда я делаю swapcontext, я время от времени возникают ошибки сегментации. Что мне делать?

Я хочу добиться чего-то вроде этого ...

void thread_func(void * thread_args)
{
 a();
 b();
 getcontext/makecontext/swapcontext to call c();
 d();
 ....
}

В этом случае я хочу использовать отдельный стек при выполнении функции c .

7
задан MetallicPriest 17 November 2011 в 14:46
поделиться