Chinaunix首页 | 论坛 | 博客
  • 博客访问: 311537
  • 博文数量: 72
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 675
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-07 17:36
文章分类

全部博文(72)

文章存档

2012年(7)

2011年(17)

2010年(46)

2009年(2)

分类: LINUX

2010-06-25 15:41:10

#define INIT_WORK(_work, _func)     \
 do {       \
  __INIT_WORK((_work), (_func), 0);  \
 } while (0)
#define __INIT_WORK(_work, _func, _onstack)    \
 do {        \
  __init_work((_work), _onstack);    \
  (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
  INIT_LIST_HEAD(&(_work)->entry);   \
  PREPARE_WORK((_work), (_func));    \
 } while (0)
 
__init_work(struct work_struct working, int onstack);
从源码来看,其功能应该是用work_struct来查找其对应的object,获取object的oom的debug信息。
(_work)->data = (atomic_long_t) WORK_DATA_INIT(); 
对work中的data进行出示化, 为0
INIT_LIST_HEAD(&(_work)->entry);   
生成一个空链
PREPARE_WORK((_work), (_func));    
调用work的func;
 
总体来说INIT_WORK是在当前任务中建立一个新的task,其功能取决于func。<为什么之前要获取该任务debug信息呢?why?>
阅读(3524) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~