コード例 #1
0
ファイル: unisex_bathroom.c プロジェクト: melias122/scratch
void *man(void *v) {
  for(;;) {
    ls_lock(&lsMale, &empty);
    lock(&mpMale);

    printf("man: entering\n");

    unlock(&mpMale);
    ls_unlock(&lsMale, &empty);
  }
}
コード例 #2
0
ファイル: unisex_bathroom.c プロジェクト: melias122/scratch
void *woman(void *v) {
  for (;;) {
    ls_lock(&lsFemale, &empty);
    lock(&mpFemale);
    
    printf("woman: entering\n");

    unlock(&mpFemale);
    ls_unlock(&lsFemale, &empty);
  }
}
コード例 #3
0
ファイル: libdlm.c プロジェクト: beekhof/dlm
/*
 * Sync locking in own lockspace
 */
int dlm_ls_lock_wait(dlm_lshandle_t ls,
		     uint32_t mode,
		     struct dlm_lksb *lksb,
		     uint32_t flags,
		     const void *name,
		     unsigned int namelen,
		     uint32_t parent,
		     void *bastarg,
		     void (*bastaddr) (void *bastarg),
		     void *range)
{
	return ls_lock(ls, mode, lksb, flags | LKF_WAIT, name, namelen, parent,
		       NULL, bastarg, bastaddr, range);
}
コード例 #4
0
ファイル: libdlm.c プロジェクト: beekhof/dlm
/*
 * Sync locking in the default lockspace
 */
int dlm_lock_wait(uint32_t mode,
		     struct dlm_lksb *lksb,
		     uint32_t flags,
		     const void *name,
		     unsigned int namelen,
		     uint32_t parent,
		     void *bastarg,
		     void (*bastaddr) (void *bastarg),
		     void *range)
{
	if (open_default_lockspace())
		return -1;

	return ls_lock(default_ls, mode, lksb, flags | LKF_WAIT, name, namelen,
		       parent, NULL, bastarg, bastaddr, range);
}