summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ipc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ipc.c b/src/ipc.c
index 26e39692b9..8b54cabbdb 100644
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -764,6 +764,9 @@ rt_err_t rt_mutex_release(rt_mutex_t mutex)
&(mutex->owner->init_priority));
}
+ /* increase value */
+ mutex->value ++;
+
/* wakeup suspended thread */
if (mutex->value <= 0 && mutex->parent.suspend_thread_count > 0)
{
@@ -783,8 +786,9 @@ rt_err_t rt_mutex_release(rt_mutex_t mutex)
}
else
{
- /* increase value */
- mutex->value ++;
+ /* clear owner */
+ mutex->owner = RT_NULL;
+ mutex->original_priority = 0;
}
/* enable interrupt */