kernel: k_msgq_put
should trigger reschedule
Make `k_msgq_put` as scheduler point to resolve high priority thread can not preempt low priority thread. Signed-off-by: TaiJu Wu <tjwu1217@gmail.com>
This commit is contained in:
parent
42511c80ba
commit
fc47180850
2 changed files with 2 additions and 1 deletions
|
@ -108,6 +108,7 @@ The following code builds on the example above, and uses the message queue
|
|||
to pass data items from a producing thread to one or more consuming threads.
|
||||
If the message queue fills up because the consumers can't keep up, the
|
||||
producing thread throws away all existing data so the newer data can be saved.
|
||||
Note that this api will trigger reschedule.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
|
|
|
@ -178,7 +178,7 @@ int z_impl_k_msgq_put(struct k_msgq *msgq, const void *data, k_timeout_t timeout
|
|||
|
||||
SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_msgq, put, msgq, timeout, result);
|
||||
|
||||
k_spin_unlock(&msgq->lock, key);
|
||||
z_reschedule(&msgq->lock, key);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue