当正在执行的进程停止但没有终止时,我的调度程序停止

问题描述 投票:0回答:0

所以,我在 c 中有一个调度程序,它每秒发送另一个 c 程序执行。然后使用队列以循环方式切换到另一个程序一秒钟。但是,我可以更改调度程序执行每个进程的时间量。例如,第一个进程可能执行 2 秒,但第二个可能是 1 秒(根据某些条件加倍)。

所以,当一个进程完成时,它会向调度程序发送一个信号,然后由 sigaction 处理。但是,当一个进程比上面的示例中的其他进程更早完成时,或者每当一个进程完成时。调度程序在处理程序内停止,但是当我使用带有 SIGCONT 的 kill 命令时,调度程序继续。

void handle(int sig){
      globalVar = '\0';
}
int main (int argc, char *argv[]){

      struct sigaction W;
      W.sa_handler = &handle;
      W.sa_flags = SA_RESTART;
      sigaction(SIGRTMIN, &W, NULL);

}

程序应将' '放入队列并继续执行剩余的进程。直到,他们都完成了。

c unix signals sigaction
© www.soinside.com 2019 - 2024. All rights reserved.