我正在尝试让进程等待,如果不满足某些条件。如果条件随着时间的推移而变化,我希望进程醒来并继续完成它的工作。
我试着这样做:
... if(condition_false)
{
signal(SIGUSR1,handler);
pause();
} ...
function handler(int signum)
{
if(signum == SIGUSR1)
{
//do stuff...
}
}
kill(proc_pid,SIGUSR1);
问题是,我的代码看起来太复杂,暂停不能按预期工作。另外,如果信号触发并且处理程序不直接提供此选项,我想打印消息。
所以我的问题是:有没有替代这种睡眠/唤醒方法?