📄 entermonitor.cpp
字号:
#ifndef ENTER_MONITOR#define ENTER_MONITORvoid ttEnterMonitor(char *nameOfMonitor) { MonitorNode* mn; TaskNode* tn; Monitor* mon; mn = (MonitorNode*) rtsys->monitorList->getFirst(); while (mn != NULL) { mon = mn->getMonitor(); if (mon->name != NULL) { if (strcmp(mon->name, nameOfMonitor) == 0) break; } mn = (MonitorNode*) mn->getNext(); } if (mn == NULL) { // Monitor does not exist char buf[200]; sprintf(buf, "ttEnterMonitor: Non-existent monitor '%s'!", nameOfMonitor); MEX_ERROR(buf); return; } mon = mn->getMonitor(); if (mon->heldBy == NULL) { // Free mon->heldBy = rtsys->executing; } else { // Not free mon->waitingQ->appendNode(new TaskNode(rtsys->executing)); tn = (TaskNode*) rtsys->readyQ->getLast(); rtsys->readyQ->deleteNode(tn); // Priority Inheritance if (mon->heldBy->priority > rtsys->executing->priority) mon->heldBy->priority = rtsys->executing->priority; }}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -