diff options
Diffstat (limited to 'src/kernel')
| -rw-r--r-- | src/kernel/msghandler.C | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/kernel/msghandler.C b/src/kernel/msghandler.C index 8e7244d2b..200f9c028 100644 --- a/src/kernel/msghandler.C +++ b/src/kernel/msghandler.C @@ -165,7 +165,10 @@ int MessageHandler::recvMessage(msg_t* i_msg) { // Successful response, resume task. - if (!restored_task) // Immediately execute first deferred task. + // Immediately execute first deferred task unless it is pinned, + // in which case it must go back onto the queue of the CPU it's + // pinned to (and may take slightly longer to dispatch) + if (!restored_task && !deferred_task->affinity_pinned) { restored_task = true; TaskManager::setCurrentTask(deferred_task); |

