2017-04-05 49 views
0

,一个进程在开始时被赋予高优先级。然而,它发生了信号14的崩溃。修正是在“文件写入操作”周围添加一对“setDefaultPriority”和“improvePriority”。 任何人都可以告诉我为什么“较低的流程优先级”可以解决它。在我们的系统中很好地降低了进程优先级linux

回答

0

这可能不是一个修复,而是一些应用程序错误的解决方法。

信号14是SIGALRM,主要用于实现超时。在某些地方,应用程序使用alarm(),这种方式可以调度未来的信号。当信号到达时,应用程序的第二部分(称为信号处理程序)应该准备好接收它。

信号14未捕获,因此这两部分没有正确同步(这是一个错误!)。

机会是稍微改变优先级使信号处理程序在信号到达时准备就绪。有可能它不适用于不同的场合或不同的系统。

+0

嗨,谢谢你的回复。是否与我的情况下阻止呼叫有关? – nathan

+0

通常,即使被阻塞的调用也会在EINT中出错,但[还有其他可能性](https://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html#Interrupted-Primitives)。 – kubanczyk

相关问题