diff options
| author | bernard.xiong <[email protected]> | 2009-09-10 12:29:15 +0000 |
|---|---|---|
| committer | bernard.xiong <[email protected]> | 2009-09-10 12:29:15 +0000 |
| commit | 3bfe93e36597553c2a781aa4a65e348df8d53bfa (patch) | |
| tree | 7d20ffeb69439683d55cbc61c5fa5ac0025a2335 /src/ipc.c | |
| parent | 91ed3ab1833abaa34899dec74a8a6e38c40a6bf7 (diff) | |
fix mutex release bug
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@45 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'src/ipc.c')
| -rw-r--r-- | src/ipc.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -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 */ |
