博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程调度API之sleep_on_spinunlock
阅读量:4214 次
发布时间:2019-05-26

本文共 588 字,大约阅读时间需要 1 分钟。

sleep_on_spinunlock 是一个宏,是等待队列使用的一个包装,这个函数重点是sleep和spinunlock这两个操作可以看到sleep_on_spinunlock 有两个参数,第一个参数是要等待的队列,第二个参数表示要执行spin_unlock的锁#define sleep_on_spinunlock(wq, s)				\	do {							\		DECLARE_WAITQUEUE(__wait, current);		\ #定义一个等待队列的head,这个等待队列是挂载当前thread的list中		add_wait_queue((wq), &__wait);			\ #将形参的等待队列加入到上一行定义的head中		set_current_state(TASK_UNINTERRUPTIBLE);	\ #将当前thread设置为不可以中断的sleep		spin_unlock(s);					\  			#解锁形参的spinlock 锁		schedule();					\				#让出cpu,这个thread停止运行		remove_wait_queue((wq), &__wait);		\   #被唤醒后,从等待队列的head中移除这个等待队列	} while(0)这个宏中涉及的每一个函数之前都单独分析过,这里只是组合起来后而已.

转载地址:http://cejmi.baihongyu.com/

你可能感兴趣的文章
北漂小记—黑客马拉松.北京站
查看>>
《浪潮之巅》1 AT&T
查看>>
《浪潮之巅》2蓝色巨人 IBM公司
查看>>
《浪潮之巅》3水果公司的复兴
查看>>
《浪潮之巅》4计算机工业的生态链
查看>>
《浪潮之巅》5奔腾的芯 英特尔公司
查看>>
《浪潮之巅》7 互联网的金门大桥 -—思科公司
查看>>
《浪潮之巅》8英名不朽---杨致远、菲洛和雅虎公司
查看>>
《浪潮之巅》9硅谷的见证人———惠普公司
查看>>
优秀的人都将是孤独的
查看>>
android 实现摇一摇功能
查看>>
android 侧滑事件的监听
查看>>
创新中国总决赛之行
查看>>
当你厌恶一个人时,你要想一下你是否也是这样的一个人
查看>>
android 数据库sqlite的使用
查看>>
android 腾讯信鸽的使用
查看>>
Android 闹钟的实现详解
查看>>
Android 实现底部导航栏
查看>>
大二新学期开始
查看>>
java 中的集合
查看>>