Я пытаюсь создать заголовочный файл в C, который виртуализирует все вызовы функций из ucontext.h libraby.
Все работает нормально, кроме func makecontext , когдая пытаюсь вызвать my_makecontext, я беру это сообщение
"недостаточно места для стека: успех прерван (ядро сброшено)" *
но когда я использую makecontext вместо моей функцииevrtything работает отлично.
Я в реальной борьбе, чтобы решить эту проблему ..
Часть моего кода ниже
test_file_for_my_funcs.c
//DONT WORK
//makecontext(&context.uctx_source,(void*)Write,1,*length);
//makecontext(&context.uctx_target,(void*)Read,0);
mycoroutines_create(&context.uctx_source,(void *)Write,length);
mycoroutines_create(&context.uctx_target,(void *)Read,length);
mycoroutines.h
int mycoroutines_create(ucontext_t *coroutine,void (body)(void *),void *arg)
{
makecontext(coroutine,(void *)body,1,(int *)arg);
if(errno != 0){
perror("Error reported by makecontext()");
return -1; }
else {
perror("not enough storage for stack");
abort();
}
return 0;
}