From 3bfe93e36597553c2a781aa4a65e348df8d53bfa Mon Sep 17 00:00:00 2001 From: "bernard.xiong" Date: Thu, 10 Sep 2009 12:29:15 +0000 Subject: [PATCH] fix mutex release bug git-svn-id: https://rt-thread.googlecode.com/svn/trunk@45 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- src/ipc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ipc.c b/src/ipc.c index 26e39692b..8b54cabbd 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 */ -- GitLab