static void sigMonitorNotify() { thread_t self = thr_self(); sysAssert(userSigMon.owner == self); sysAssert(userSigMon.count > 0); condvarSignal(&userSigMon.condvar); }
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; }