MAC内核编程指南-同步原语

来源:互联网 发布:木结构房屋造价 知乎 编辑:程序博客网 时间:2024/05/06 15:55

Synchronization Primitives

(一)Mutexes的应用

  我在之前的blog中简单的提了提MAC的三种锁,今天在这着重说说mutexes的使用,也只有这方面我有点经验。先贴例子,再解释
lck_grp_attr_t *tz_slock_grp_attr;
lck_grp_t *tz_slock_grp;
lck_attr_t *tz_slock_attr;
lck_mtx_t *tz_slock;
 
/* allocate lock group attribute and group */
tz_slock_grp_attr = lck_grp_attr_alloc_init();
lck_grp_attr_setstat(tz_slock_grp_attr);
 
tz_slock_grp =  lck_grp_alloc_init("tzlock", tz_slock_grp_attr);
 
/* Allocate lock attribute */
tz_slock_attr = lck_attr_alloc_init();
//lck_attr_setdebug(tz_slock_attr); // set the debug flag
//lck_attr_setdefault(tz_slock_attr); // clear the debug flag
 
/* Allocate the mutex lock */
tz_slock = lck_mtx_alloc_init(tz_slock_grp, tz_slock_attr);

首先是申明两个grp、attr对象,然后利用这两个对象来做mutex的初始化。