Beispiel #1
0
static void sigMonitorNotify()
{
    thread_t self = thr_self();

    sysAssert(userSigMon.owner == self);
    sysAssert(userSigMon.count > 0);
    condvarSignal(&userSigMon.condvar);
}
Beispiel #2
0
int
sysMonitorNotify(sys_thread_t *self, sys_mon_t *mid)
{
    sysAssert(mid != SYS_MID_NULL);
    if (self == mid->monitor_owner) {
        if (ANY_WAITING(mid->mwait_queue)) {
            /* If there is someone doing a monitor wait */
            condvarSignal(&(mid->cv_monitor));
        }
        return SYS_OK;
    } else
        return SYS_ERR;
}