免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3337 | 回复: 0
打印 上一主题 下一主题

简单 rcu 使用示例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-14 11:27 |只看该作者 |倒序浏览

  1. static struct list_head xfrm_km_list = LIST_HEAD_INIT(xfrm_km_list);
  2. static DEFINE_RWLOCK(xfrm_km_lock);

  3. void km_policy_notify(struct xfrm_policy *xp, int dir, struct km_event *c)
  4. {
  5.         struct xfrm_mgr *km;

  6.         //read_lock(&xfrm_km_lock);
  7.         rcu_read_lock();
  8.         //list_for_each_entry(km, &xfrm_km_list, list)
  9.         list_for_each_entry_rcu(km, &xfrm_km_list, list)
  10.                 if (km->notify_policy)
  11.                         km->notify_policy(xp, dir, c);
  12.         //read_unlock(&xfrm_km_lock);
  13.         rcu_read_unlock();
  14. }

  15. //int xfrm_register_km(struct xfrm_mgr *km)
  16. void xfrm_register_km(struct xfrm_mgr *km)
  17. {
  18.         write_lock_bh(&xfrm_km_lock);
  19.         //list_add_tail(&km->list, &xfrm_km_list);
  20.         list_add_tail_rcu(&km->list, &xfrm_km_list);
  21.         write_unlock_bh(&xfrm_km_lock);
  22.         //return 0;
  23. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP