aboutsummaryrefslogtreecommitdiffstats
path: root/os/rt/src/chmtx.c
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-08-21 13:05:18 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-08-21 13:05:18 +0000
commit3caa603df42e9215259d6d2256da1c3911e7d8ae (patch)
tree0df80124d1de38b66e06c6888c987a30b65befcd /os/rt/src/chmtx.c
parentf2f3d60519f35608b22b33059eb6bf40b1cca411 (diff)
downloadChibiOS-3caa603df42e9215259d6d2256da1c3911e7d8ae.tar.gz
ChibiOS-3caa603df42e9215259d6d2256da1c3911e7d8ae.tar.bz2
ChibiOS-3caa603df42e9215259d6d2256da1c3911e7d8ae.zip
Fixed bug #632.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8229 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/rt/src/chmtx.c')
-rw-r--r--os/rt/src/chmtx.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/os/rt/src/chmtx.c b/os/rt/src/chmtx.c
index 03f78a3ce..42c2836ae 100644
--- a/os/rt/src/chmtx.c
+++ b/os/rt/src/chmtx.c
@@ -375,7 +375,13 @@ void chMtxUnlock(mutex_t *mp) {
mp->m_owner = tp;
mp->m_next = tp->p_mtxlist;
tp->p_mtxlist = mp;
- chSchWakeupS(tp, MSG_OK);
+
+ /* Note, not using chSchWakeupS() becuase that function expects the
+ current thread to have the higher or equal priority than the ones
+ in the ready list. This is not necessarily true here because we
+ just changed priority.*/
+ (void) chSchReadyI(tp);
+ chSchRescheduleS();
}
else {
mp->m_owner = NULL;