summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrissiom <[email protected]>2013-10-14 09:50:18 +0800
committerGrissiom <[email protected]>2013-10-14 09:50:18 +0800
commitb72001fcac18d2c37c24e423cc7e15fe900dc172 (patch)
treefddd81c8ef3c78852b51bcd0f4863c629801bb0d
parentca9b83c68fcc2b841400a5f4c7728a111582ffb7 (diff)
kernel: mutex could only be released in thread context
Mutex has the idea of ownership, only the thread which owns the mutex can release it. So rt_mutex_release could only be called in thread context. Add a debug guard to it.
-rw-r--r--src/ipc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/ipc.c b/src/ipc.c
index 7e4263c0bf..0ad50bfbc5 100644
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -777,6 +777,9 @@ rt_err_t rt_mutex_release(rt_mutex_t mutex)
need_schedule = RT_FALSE;
+ /* only thread could release mutex because we need test the ownership */
+ RT_DEBUG_IN_THREAD_CONTEXT;
+
/* get current thread */
thread = rt_thread_self();