博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中断API之tasklet_disable_nosync/tasklet_trylock/tasklet_unlock
阅读量:4213 次
发布时间:2019-05-26

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

static inline void tasklet_disable_nosync(struct tasklet_struct *t)通过增加tasklet_struct结构体变量中的count字段的值,使的软中断不能被调用执行。和tasklet_disable 相比,不用等待形参的tasklet_struct 执行完成。其源码分析如下:static inline void tasklet_disable_nosync(struct tasklet_struct *t){	#仅仅增大tasklet_struct结构体变量中的count字段的值。	#从这里可以知道增大count字段的值,可以让tasklet不被调度执行.	atomic_inc(&t->count);	smp_mb__after_atomic();}tasklet_trylock函数用于用于返回tasklet_struct字段的值,并将这个字段的值设置为TASKLET_STATE_RUNstatic inline int tasklet_trylock(struct tasklet_struct *t){	return !test_and_set_bit(TASKLET_STATE_RUN, &(t)->state);}与之对应的static inline void tasklet_unlock(struct tasklet_struct *t){	smp_mb__before_atomic();	clear_bit(TASKLET_STATE_RUN, &(t)->state);}仅仅对应的unlock操作会将tasklet_struct 字段的TASKLET_STATE_RUN 位清零.

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

你可能感兴趣的文章
Xcode8 兼容iOS 10 整理笔记
查看>>
iOS 枚举的巧用
查看>>
让你的 Xcode8 继续使用插件
查看>>
iOS去除导航栏和tabbar的1px横线
查看>>
iOS GitHub上常用第三方框架
查看>>
ios 隐藏cell分割线和自定义cell分割线颜色
查看>>
ios 图片保存到系统相册
查看>>
UIAlertController样式集合
查看>>
数据结构之—图
查看>>
计算机网络基础
查看>>
C++中内存(堆和栈)
查看>>
循环队列
查看>>
网络基础知识点总结1
查看>>
操作系统知识点总结1
查看>>
C++常见知识点总结
查看>>
Linux知识点小结One
查看>>
数据库知识点小结
查看>>
指针、内存和字节
查看>>
设计模式中类的关系
查看>>
策略模式、代理模式
查看>>