【发布时间】:2012-04-10 10:10:07
【问题描述】:
有一个函数叫test(),我想每30秒调用一次这个函数,请找到我实现的代码sn-p。
void init_sigaction(void) {
struct sigaction act;
act.sa_handler = test; //test()
act.sa_flags = 0;
sigemptyset(&act.sa_mask);
sigaction(SIGPROF, &act, NULL);
}
void init_time(void) {
struct itimerval val;
val.it_value.tv_sec = 30; //Timer 30 Seconds
val.it_value.tv_usec = 0;
val.it_interval = val.it_value;
setitimer(ITIMER_PROF, &val, NULL);
}
int main()
{
/*Set the handler for the signal SIG to HANDLER */
signal(SIGINT, signal_handler);
init_sigaction();
init_time();
Some_other_function();
}
现在我正在使用其他功能,我想暂停 sigaction 计时器,直到其他功能执行。如何实现暂停中断?
谢谢,
【问题讨论】:
-
您要停止计时器运行,还是推迟信号处理程序的执行?
-
我想停止计时器,当我的其他进程完成后,我想再次运行计时器。
标签: c multithreading signals