smo*_*fra 4 linux linux-kernel
假设我想在n个单独事件发生后唤醒任务.将信号量初始化为1 - n和向下()它是否合法,所以我在每个事件都起来之后醒来()它?
我不这么认为.
(1)semephore.count声明为unsigned int.见信号量定义:
struct semaphore {
spinlock_t lock;
unsigned int count;
struct list_head wait_list;
};
Run Code Online (Sandbox Code Playgroud)
(2)down()函数将在减小之前检查计数值,确保计数不是负数.
除非您实现一种机制,否则不能直接使用信号量来完成您的要求.
| 归档时间: |
|
| 查看次数: |
2174 次 |
| 最近记录: |