我的程序包含该行

 makecontext( &threadList[ numThreads ].context, (void (*)(void)) &threadStart, 1, 5);


其中threadStart定义为:

      static void threadStart(int x){
      printf("Yes! Yes! %d\n", x);
 }


我认为这应该导致“是”!是! 5正在打印,但这不会发生。我不确定发生了什么。我知道这条线正在运行,因为在它下面有一条打印语句。任何帮助表示赞赏。

最佳答案

仅当上下文由setcontext()swapcontext()激活时才调用该函数

makecontext(3)

关于c - 为什么makecontext没有调用我的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54845905/

10-10 18:16