ACE事件处理程序/ TimerHandler /事件优先级中的互斥锁用法

时间:2016-05-11 19:25:31

标签: frameworks mutex ace

我有一个关于在ACE框架中使用互斥锁进行同步的问题。 任务A已在计时器处理程序中注册。在任务A中调用函数foo。 foo中的Critical部分使用递归互斥锁进行保护。 foo函数使用的变量由handle_timeout使用(写/读)访问。这意味着我们需要保护它们。

我们有以下的伪代码

foo()
lock(recursive_mutex)
C.S
unlock(recursive_mutex)

handle_timeout()
{
lock(recursive_mutex)
C.S
unlock(recursive_mutex)
}

如果handle_timeout在foo释放锁之前发生,会发生死锁吗?

如果我们有一个具有最高优先级的任务B,则注册到另一个事件。如果在handle_timoeout时触发此事件,会发生什么? 我们是否会进行上下文切换和第二次启动处理?

0 个答案:

没有答案