static int NaClDescMutexUnlock(struct NaClDesc *vself) { struct NaClDescMutex *self = (struct NaClDescMutex *) vself; NaClSyncStatus status = NaClIntrMutexUnlock(&self->mu); return -NaClXlateNaClSyncStatus(status); }
int NaClDescMutexLock(struct NaClDesc *vself, struct NaClDescEffector *effp) { struct NaClDescMutex *self = (struct NaClDescMutex *) vself; NaClSyncStatus status = NaClIntrMutexLock(&self->mu); UNREFERENCED_PARAMETER(effp); return -NaClXlateNaClSyncStatus(status); }
static int NaClDescCondVarWait(struct NaClDesc *vself, struct NaClDesc *mutex) { struct NaClDescCondVar *self = (struct NaClDescCondVar *) vself; struct NaClDescMutex *mutex_desc; NaClSyncStatus status; if (((struct NaClDescVtbl const *) mutex->base.vtbl)-> typeTag != NACL_DESC_MUTEX) { return -NACL_ABI_EINVAL; } mutex_desc = (struct NaClDescMutex *)mutex; status = NaClIntrCondVarWait(&self->cv, &mutex_desc->mu, NULL); return -NaClXlateNaClSyncStatus(status); }
static int NaClDescCondVarBroadcast(struct NaClDesc *vself) { struct NaClDescCondVar *self = (struct NaClDescCondVar *) vself; NaClSyncStatus status = NaClIntrCondVarBroadcast(&self->cv); return -NaClXlateNaClSyncStatus(status); }