一个简单的通知链。。。
时间:2010-06-25
来源:互联网
作者: wmmy2008 发布时间: 2010-06-25
GOOD,谢了咯
作者: rrz214 发布时间: 2010-06-25
extern int event_register_notify_chain(struct notify_node * node);
这个函数其实可以不暴露struct notify_node吧,直接用以下三个成员做参数,在函数内部进行内存分配。
int (*notify_call)(struct notify_node *, void *);
/*list is from min to max*/
char priority; /*0,1,2,3....*/
void * data;
另外那个likely()在哪里定义的?
这个函数其实可以不暴露struct notify_node吧,直接用以下三个成员做参数,在函数内部进行内存分配。
int (*notify_call)(struct notify_node *, void *);
/*list is from min to max*/
char priority; /*0,1,2,3....*/
void * data;
另外那个likely()在哪里定义的?
作者: 没本 发布时间: 2010-06-25
QUOTE:
extern int event_register_notify_chain(struct notify_node * node);
这个函数其实可以不暴露struct not ...
没本 发表于 2010-06-25 16:02
这个函数其实可以不暴露struct not ...
没本 发表于 2010-06-25 16:02
#define likely(x) __builtin_expect(!!(x), 1) 用的GCC的一个扩展...
注册的时候 struct notify_node 留给用户处理,,函数内并未动态分配.
作者: wmmy2008 发布时间: 2010-06-25
另外,fun()回调可能在任何线程发生,因此需要fun()自己保障线程安全。我还是倾向各线程回调各自对应的回调函数fun(),可以避免锁。
作者: 没本 发布时间: 2010-06-25
回复 没本
如果回调函数需要加锁的话,肯定要用户自己实现,这里的锁主要是为同步通知链的操作..
如果回调函数需要加锁的话,肯定要用户自己实现,这里的锁主要是为同步通知链的操作..
作者: wmmy2008 发布时间: 2010-06-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28