Linux内核线程在持有锁的情况下退出时会发生什么

时间:2015-08-23 07:01:21

标签: linux-kernel

Linux内核线程在保持自旋锁的情况下退出会发生什么?

我在函数中看到:static inline void schedule_debug(struct task_struct * prev) 在__schedule中,有一个检查:

if(不太可能(in_atomic_preempt_off()&& prev-> state!= TASK_DEAD)         __schedule_bug(PREV);

避免检查退出线程的抢占禁用。

那么,内核是否明确确保锁被释放,或者它只是让内核进入死锁状态,如果线程没有处理它?<​​/ p>

另外,其他锁如互斥锁和信号量呢?

0 个答案:

没有答案