void EventAlarmHandler(OSAlarm *alarm, OSContext *context) { // Wakeup the thread waiting on this alarm auto data = reinterpret_cast<EventAlarmData*>(OSGetAlarmUserData(alarm)); data->timeout = TRUE; OSWakeupOneThreadNoLock(data->thread); }
void SleepAlarmHandler(OSAlarm *alarm, OSContext *context) { OSLockScheduler(); // Wakeup the thread waiting on this alarm auto data = reinterpret_cast<SleepAlarmData*>(OSGetAlarmUserData(alarm)); OSWakeupOneThreadNoLock(data->thread); OSUnlockScheduler(); }