本文整理汇总了C++中MemoryManager::getMessageQueueWithoutVirtualOffset方法的典型用法代码示例。如果您正苦于以下问题:C++ MemoryManager::getMessageQueueWithoutVirtualOffset方法的具体用法?C++ MemoryManager::getMessageQueueWithoutVirtualOffset怎么用?C++ MemoryManager::getMessageQueueWithoutVirtualOffset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MemoryManager
的用法示例。
在下文中一共展示了MemoryManager::getMessageQueueWithoutVirtualOffset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeIntoMessageQueue
void Kernel::writeIntoMessageQueue(Task* task, int length, int params[]) {
int activeTaskId = _taskManager->getActiveTask()->id;
if ((std::strcmp(_taskManager->getActiveTask()->name, "ScreenSwitcher") == 0) && (params[0] == 398)) {
activeTaskId = -1;
int nextTaskId = -1;
Task** tasks = _taskManager->getTaskList();
for (int i = _displayTaskId + 1; nextTaskId < 0; i++) {
if (i >= MAX_TASKS) {
i = 0;
}
if (tasks[i] != NULL) {
nextTaskId = i;
}
}
_displayTaskId = nextTaskId;
params[1] = _displayTaskId;
}
// if (task->status == Blocked) {
// task->status = Ready;
// }
MemoryManager* memoryManager = task->memoryManager;
MessageQueue* messageQueue = memoryManager->getMessageQueueWithoutVirtualOffset();
if (!messageQueue->isFull()) {
Message* message = memoryManager->createMessage(activeTaskId, length, params);
messageQueue->pushMessage(message);
};
}